Java基础之IO流篇
一:File类的使用(File声明在java.io包下,File的对象就代表一个文件或一个文件目录(文件夹))

(1)创建File类的实例:三种构造器,注意路径分隔符(windows:\\, unix:/)

(2)File类的常用方法:
以下方法并未涉及到写入或读取文件内容的操作,如果需要这两个操作,必须使用IO流来完成。后续File类的对象常会作为参数传入到流的构造器中,指明读取或写入的“终点”。




二:IO流的分类与体系结构
字节流用来传输图片、视频等非文本数据类型,字符流用来传输文本数据类型。(特例:如果不中途显示打印,仅进行端到端的复制操作,字节流也可以用来传输文本类型。因为中途打印的时候是单个字节,若有中文,占用两个字节,则会乱码,而端到端复制完成之后,在文本文件中显示则不会乱码。)

图形化理解各种流


重点是如下几个类!!!

三:节点流(文件流)的使用
(1)FileReader读入数据的基本操作


read()可以传入数组,表示一次读入数组长度个字符,放入该数组中,并返回。
(2)FileWriter() 写入数据的基本操作
若文件不存在则会自动创建对象,若文件存在,则默认写入会覆盖原文件(即第二个参数默认为false),若声明流对象时传入第二个参数为true,表示直接在原文件中文本末尾写入,不覆盖原文件。

FileInputStream与FileOutputStream流的使用类似。
四:缓冲流的使用(处理流之一,开发中常用)
使用和前面类似。只是声明缓冲流时,需要先实例化节点流对象,将其传入缓冲流构造器中,相当于节点流是内层,在外层包了一层缓冲流(先穿内衣,再穿外衣)。注意,资源关闭时,先关闭外层,再关闭内层(先脱外衣,再脱内衣)。(java中关闭外层流的同时,内层流也会自动关闭,所以仅关闭外层即可)
缓冲流作用:提高流的读取,写入速度;
原因:缓冲流内部提供了一个缓冲区(大小为8192个字节,也就是8KB),每次先将读取的数据放入缓冲区中,缓冲区满,就一次性将数据写出。另外,flush()方法可以刷新缓冲区,当调用该方法时,即使内部缓冲区未满,也会强制写出将缓冲区情空。而缓冲流内部已调用flush方法,无需在外部再调用。

异常用try-catch处理。
五:转换流的使用(处理流之二)


六:对象流的使用(处理流之三)

重点是对象的序列化过程和反序列化过程

一个类想要可序列化,需要:


七:其他处理流



改变输出,不在控制台输出,而是输出在文件中。


八:随机存取文件流(RandomAccessFile类)


参考:https://www.bilibili.com/video/BV1Kb411W75N?
浙公网安备 33010602011771号