java基础入门之IO流
目录
- io学习框架:
- 文件:
- Io流的原理:
- 节点流和处理流:
- BufferWriter:
- 处理字节的处理流:
- 标准输入和输出:
- 转换流:
- 打印流:
- Properties类:
- 总结
io学习框架:

文章图片
文件: 保存数据的地方。

文章图片
1)常见文件对象的相关构造器和方法:

文章图片
当进行File file = new File(filePath); 只是在内存上有一个文件对象;
【java基础入门之IO流】只有file.createNewFile(); 才会在磁盘创建文件

文章图片
获取文件的相关信息:
utf8中,一个汉字是三个字节,所以当用字节流的read()方法一个字节一个字节的读取的时候,将会出现乱码的情况

文章图片
2)目录的删除和增加:
a)用来删除文件或者文件夹

文章图片
b)文件夹的创建:

文章图片
Io流的原理:

文章图片
流的分类:
字节流适用于声音等文件的传输,因为字节流是一个字节一个字节的读取,可以保证无损;
字符流虽然读取的效率高些,但更适用于文本的读取;
注意:inpuStream,OutputStream,Reader,Writer全是抽象类,创建对象时候要实现他们的子类即可。

文章图片
1)InputSream输入流:

文章图片

文章图片
字节输入流:文件–》程序
a)fileInputStream.read()一个一个字节读取
(注意:输出的时候不能像如图框选的那样输出,因为read()读取的是下一个字符了)

文章图片
b)改进,使用fileInputStream.read(buffer)

文章图片
2)OutputStream

文章图片
注意:如果使用OutputStream写入数据时候,文件不存在将自动进行文件的创建;
以下是写入数据的几种方式,
当使用红框的语句的时候,写入数据会追加在文件中;
否则,将覆盖文件的内容

文章图片
完成文件的拷贝:(需要输入流和输出流的综合应用)

文章图片
3)FileReader:

文章图片

文章图片
1)FileReader的使用:

文章图片
4) FileWriter:

文章图片
使用filewriter后,必须关闭(close)或者刷新(flush),否则写入不到指定文件

文章图片
a)FileWriter的使用:
使用filewriter后,必须关闭(close)或者刷新(flush),否则写入不到指定文件
close()相当于flush()+关闭

文章图片
节点流和处理流: 1)节点流:直接读取数据源的流

文章图片

文章图片

文章图片
2)处理流:对节点流进行包装

文章图片
例如BufferReader:
readLine()是按行读取:
当返回null时候,表示文件读取完毕;
关闭流的时候,这里只需要关闭BufferReader,因为底层会自动去关闭节点流;

文章图片
BufferWriter: 注意:如果需要追加在文件的话,是在节点流进行设置;
newLine()插入一个换行符

文章图片
两者的区别与联系:

文章图片
BufferReader和BufferWriter实现文件拷贝:
注意:BufferReader和BufferWriter是安装字符操作;
不要操作二进制文件(声音,视频,doc,pdf,等等),可能会造成文件损坏

文章图片
处理字节的处理流: BufferedOutputStream和BufferedInputStream实现拷贝图片:

文章图片
当然,除此之外,BufferedOutputStream和BufferedInputStream也可以实现文本的拷贝;
对象处理流:专门处理对象的流,专门把对象保存到文件中,并且能够从文件中恢复;
序列化:就是保存数据的时候,保存数据的值和数据类型;
标记接口:没有任何方法

文章图片
1)ObjectInputStream:(也是包装流)

文章图片
示例:

文章图片
2)ObjectOutputStream:

文章图片
示例:
序列化之后,保存的文件格式,不是纯文本,而是按照他的格式来存储

文章图片
当反序列化的时候需要用到getName(); toString()等方法的时候,序列化也要一并把这些方法存储进行;

文章图片
对象流注意事项:

文章图片
标准输入和输出: 标准输入,从键盘是获取:Scanner scanner = new Sanner(System.in);

文章图片
转换流: InputStreamReader:字节流转化(包装)为字符流;

文章图片

文章图片
1)**OutputStreamReader:**字节流转化(包装)为字符流;

文章图片

文章图片

文章图片
打印流: (只有输出流,没有输入流)
PrintStream和PrintWriter(可以把信息打印到文件里面)
1)PrintStream

文章图片

文章图片

文章图片
2)PrintWriter

文章图片
PrintWriter可以传入一个输出流,这里System.out是标准输出

文章图片
Properties类: 1)传统的处理方法(使用处理流加载配置文件),不方便:

文章图片
2)Properties方式:

文章图片

文章图片
总结 这篇文章就到这里了,希望大家能够喜欢,也希望大家能够多多关注脚本之家其他文章!
推荐阅读
- JAVA(抽象类与接口的区别&重载与重写&内存泄漏)
- 事件代理
- Java|Java OpenCV图像处理之SIFT角点检测详解
- java中如何实现重建二叉树
- 数组常用方法一
- Python基础|Python基础 - 练习1
- 【Hadoop踩雷】Mac下安装Hadoop3以及Java版本问题
- Java|Java基础——数组
- RxJava|RxJava 在Android项目中的使用(一)
- java之static、static|java之static、static final、final的区别与应用