JAVA笔记十七

十七、File-IO流

1.I/O的概念和java.io包

(1)输入:外部源—>程序

  输出:程序—>输出目标

  外部源、输出目标:磁盘文件、网络连接、内存缓存等

(2)java程序通过流执行I/O

流是一种抽象,可以用来产生信息或者使用信息,可以通过java的I/O系统链接到物理设备

2.File类

可以表示一个文件,也可以表示一个路径/目录

(1)创建File对象

File对象描述了文件/目录本身的属性,用于获取和操作与磁盘文件/目录关联的信息

构造方法:

·File(String directoryPath)

·File(String directoryPath,String filename)

·File(File dirObj,String filename)

·File(URI uriObj)

(2)File类的常用方法

·boolean exists():File对象所表示的文件或目录是否存在

·String getName():获取文件名或文件夹名

·String getPath():将路径转换为字符串,并返回

·String getAbsolutePath():返回抽象路径名的绝对路径名字符串

·boolean isFile():判断File对象所表示的是否是一个标准文件

·boolean isDirectory():判断File对象所表示的是否是一个目录

·boolean createNewFile():创建新文件,如果目录不存在则异常

·boolean mkdir():只能创建一层目录

·boolean mkdirs():可以创建多层目录

·boolean delete():删除文件或文件夹

3.流

(1)流的分类

流的方向:

·输入流

·输出流

处理数据单位的方式:

·字节流(8位)

·字符流(16位)

功能:

·节点流:从一个特定的数据源(节点)读写数据的流

·处理流:通过对数据的处理位程序提供更为强大的读写功能

(2)IO流结构图

红色边框的流为常用的流

4.字节流

字节输入流InputStream主要方法

(1)read()

从此输入流中读取一个数据字节

(2)read(byte[] b)

从此输入流中将最多b.length个字节的数据读入一个byte数组中

(3)read(byte[] b, int off, int len)

从此输入流中将最多len个字节的数据读入一个byte数组中

(4)close()

关闭此输入流并释放与该流关联的所有系统资源

字节输出流OutputStream主要方法

(1)write(byte[] b)

将b.length个字节从指定byte数组写入此文件输出流中

(2)write(byte[] b, int off, int len)

将指定byte数组中从偏移量off开始的len个字节写入此文件输出流

(3)write(int b)

将指定字节写入此文件输出流

(4)close()

关闭此输入流并释放与该流关联的所有系统资源

5.字符流

字符输入流Reader主要方法

(1)read()

读取单个字符

(2)read(char[] cbuf)

将字符读入数组

(3)read(char[] cbuf, int off, int len)

将字符读入数组的某一部分

(4)read(CharBuffer target)

试图将字符读入指定的字符缓冲区

(5)flush()

刷新该流的缓冲

(6)close()

关闭此流,但要先刷新它

字符输出流Writer主要方法

(1)write(char[] cbuf)

写入字符数组

(2)write(char[] cbuf, int off, int len)

写入字符数组的某一部分

(3)write(int c)

写入单个字符

(4)write(String str)

写入字符串

(5)write(String str, int off, int len)

写入字符串的某一部分

flush() :刷新该流的缓冲。

close() :关闭此流,但要先刷新它

6.转换流

(1)InputStreamReader

字节输入流转换成字符输入流

FileInputStream fileInputStream=new FileInputStream(file);

Reader reader=new InputStreamReader(fileInputStream,UTF-8)  字节编码

InputStreamReader继承了Reader

(2)OutputStreamReader

字节输出流转换成字符输出流

FileOutputStream fileOutputStream=new FileOutputStream(file);

Writer writer=new OutputStreamWriter(fileOutputStream);

OutputStreamWriter继承了Writer

7.缓冲流

(1)字节缓冲流

BufferedInputStream、BufferedOutputStream

(2)字符缓冲流

BufferedWriter、BufferedReader

8.打印流

PrintWriter

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/3270133.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

Python基础——第一个Python程序

Python基础——第一个Python程序 一、编写和运行代码的工具1.1 为什么需要工具1.2 默认的交互式环境1.3 文本编辑神器 - Visual Studio Code1.4 专业的集成开发环境 - PyCharm 二、编写第一个Python程序2.1 在PyCharm中编写“Hello, World!”程序2.2 运行“Hello, World!”程序…

期指期货做空什么意思?股指期货做空怎么操作?

“期指做空”是一种金融交易策略,主要涉及股指期货。在这种策略中,投资者并没有实际持有股票,而是通过期货合约来进行交易。具体来说,做空是指在期货市场中,投资者预期某项资产的价格将下跌,因此选择先卖出…

springboot农村扶贫管理系统-计算机毕业设计源码34072

目录 1 绪论 1.1 选题背景与意义 1.2国内外研究现状 1.3论文结构与章节安排 2系统分析 2.1 可行性分析 2.1.1技术可行性 2.1.2经济可行性 2.1.3社会可行性 2.1.4法律可行性 2.2 系统流程分析 2.2.1 数据流程 2.2.2 业务流程 2.3 系统功能分析 2.3.1 功能性分析 …

十日Python项目——第三日(用户中心——邮箱验证、修改密码)

#前言: 在最近十天我会用Python做一个购物类项目,会用到DjangoMysqlRedisVue等。 今天是第三天,主要负责撰写用户中心部分,以及优化登录部分。若是有不懂大家可以先阅读我的前两篇博客以能够顺承。博客:十日Python项…

【你也能从零基础学会网站开发】 SQL结构化查询语言应用基础-- SQL Server 2000创建表约束之IDENTITY唯一游标、DEFAULT约束详解!

🚀 个人主页 极客小俊 ✍🏻 作者简介:程序猿、设计师、技术分享 🐋 希望大家多多支持, 我们一起学习和进步! 🏅 欢迎评论 ❤️点赞💬评论 📂收藏 📂加关注 IDENTITY唯一游…

安装CUDA Cudnn Pytorch(GPU版本)步骤

一.先看自己的电脑NVIDIA 支持CUDA版本是多少? 1.打开NVIDIA控制面板 2.点击帮助---系统信息--组件 我的支持CUDA11.6 二.再看支持Pytorch的CUDA版本 三.打开CUDA官网 下载CUDA 11.6 下载好后,安装 选择 自定义 然后安装位置 (先去F盘…

怎么远程查看电脑文件?

为什么需要远程访问电脑? 您是否曾遇到需要远程查看电脑文件的情况?例如,由于紧急原因需要访问办公室的电脑文件。那么,我们怎么才能在家里或者在外面远程查看公司电脑上的文件呢? 如今,许多远程控制软件…

用Manim实现Graf的数学动画——【DiGraph】的用法和实际操作

用Manim实现Graf的数学动画——【DiGraph】的详细 这是表示有向图的类。在有向图中,边有方向,意味着边是从一个顶点指向另一个顶点的。 图【Graph】两层含义: 1.称为顶点的连接点图。 2. 绘制的值,通常显示为具有水平轴和垂直轴的…

昇思25天学习打卡营第2天|基础知识-张量

目录 张量 张量Tensor的介绍 创建张量 张量的属性 张量索引 张量运算 Tensor与NumPy转换 Tensor转换为NumPy NumPy转换为Tensor 稀疏张量 CSRTensor COOTensor 张量 张量Tensor的介绍 张量(Tensor)是一个可用来表示在一些矢量、标量和其他…

探索 SPL-404 协议标准:NFT 与 DeFi 的融合

在快速发展的数字资产领域中,NFT 协议标准持续演变,改变了我们对数字所有权和互动方式的理解。从 Art 到 Gamefi 等等,NFT 已经演变成数字经济的重要组成部分,吸引了广泛关注。遵循 ERC404 协议,SPL404 概念在 Solana …

掀桌子了!原来是咱们的大屏设计太酷,吓着前端开发老铁了

掀桌子了!原来是咱们的大屏设计太酷,吓着前端开发老铁了 艾斯视觉观点认为:在软件开发的世界里,有时候创意和设计的火花会擦得特别亮,以至于让技术实现的伙伴们感到既兴奋又紧张。这不,我们的设计团队刚刚…

for循环计算1~100之间3的倍数的数字之和

你要计算1~100之间的数字先得打印出来1~100之间的数字然后在判断是不是3的倍数然后在打印出数字&#xff0c;代码如下 #include<stdio.h> int main() {int i 0;for (i 1; i < 100; i){if (i % 3 0){printf("%d ", i);}}return 0; }

平面点云三角化边数与点的关系

欢迎关注更多精彩 关注我&#xff0c;学习常用算法与数据结构&#xff0c;一题多解&#xff0c;降维打击。 点云三角化定义 原文 说人话&#xff1a; 一个二维平面点集P三角化结果是一个满足以下条件的三角形集合&#xff1a; 1 所有三角形的并集刚好是P的凸包。 2 所有三角…

反向代理和负载均衡

目录 步骤1 代理技术介绍 代理技术常见的类型 正向代理的用途 反向代理的作用 步骤2 反向代理配置 步骤3 负载均衡 1、路由模式&#xff08;推荐&#xff09; 2、桥接模式 3、服务直接返回模式 4、负载均衡算法介绍 1、轮询法 2、随机法 3、最小连接法 步骤4 nginx…

客户在哪儿AI——做真正管用的大客户获客方案

我们的目标是要打造一个真正“管用”的ToB大客户获客方案。以下是两个100%真实的案例&#xff0c;所有数据均为真实经营数据。一个是证明客户在哪儿AI对市场工作的颠覆性提升&#xff0c;另一个是证明客户在哪儿AI对决策层和销售工作的颠覆性提升。 客户在哪儿AI生产的是企业全…

唉~~量化策略越改越差了

最近收到藏经阁群友私信&#xff0c;问能不能在最近发布的轮动策略当中加入持仓时间的限制条件&#xff0c;买入某个ETF后&#xff0c;必须持有够7天才可以卖出。 其目的有二&#xff0c;第一是想减少市场杂音&#xff0c;减少不必要的交易&#xff0c;第二就是如果场外操作的话…

【JavaScript】详解Day.js:轻量级日期处理库的全面指南

文章目录 一、Day.js简介1. 什么是Day.js&#xff1f;2. 安装Day.js 二、Day.js的基本用法1. 创建日期对象2. 格式化日期3. 解析日期字符串4. 操作日期5. 比较日期 三、Day.js的高级功能1. 插件机制2. 国际化支持 四、实际应用案例1. 事件倒计时2. 日历应用 在JavaScript开发中…

Qt背景与环境搭建

目录 ​编辑 一、Qt背景 1.行业岗位介绍 2.什么是Qt 3.Qt的发展史 4.Qt支持的平台 5.Qt的版本和优点 5.1 版本 5.2 优点 6.Qt的应用场景 7.Qt 的成功案例 8.Qt 发展前景 二、环境搭建 1.Qt 的开发工具概述 2.Qt SDK 的下载和安装 2.1 Qt SDK 的下载 ​编辑 2…

Ascend算子开发

Device侧 1. 存储API 1.1 GlobalTensor 1.2 LocalTensor 可获取、设置值、获取大小。页可以通过[]获取 1.3 数据类型 2. Add样例 数据搬入&#xff1a;DataCopy调用计算接口&#xff1a;Add数据搬出&#xff1a;LocalTensor、EnQue、DeQue 2.1 核函数定义 x、y输入&#xff…

『 Linux 』线程概念

文章目录 什么是线程执行流线程与进程的关系页表构造及线程资源分配线程的轻量化线程的特点 什么是线程 线程本质上是进程的一个执行分支,用于处理进程中的代码和数据; 每个线程都可以执行独立不同的代码片段,这意味着在一个进程中可以同时执行多个任务; 同一个进程中的所有线程…