这里的基本操作就是普通的读取操作,如果想要跟深入的了解不同的 IO开发场景必须先了解 IO 的基本操作。
1:按字符流读取文件
1:按字符流的·节点流方式读取
如果我们要取的数据基本单位是字符,那么用(字符流)这种方法读取文件就比较
适合。比如:读取 test.txt 文件
注释:
字符流:以字符为单位,每次次读入或读出是 16 位数据。其只能读取字符类型数据。 (Java 代码接收数据为一般为 char 数组,也可以是别的)
字节流:以字节为单位,每次次读入或读出是 8 位数据。可以读任何类型数据,图片、文件、音乐视频等。 (Java 代码接收数据只能为 byte 数组)
FileReader 类:(字符输入流) 注意:new FileReader("D:\test.txt");//文件必须存在
2:按字符流的·处理流方式读取
效果是一样,但是给了我们有不同的选择操作。进行了一个小封装,加缓冲功能, 避免频繁读写硬盘。我这只是简单演示,处理流其实还有很多操作
BufferedReader 类: 字符输入流使用的类,加缓冲功能,避免频繁读写硬盘
2:按字符流写出文件
1:按字符流的·节点流方式写出
写出字符,使用(字符流)这种方法写出文件比较适合。比如:输出内容添加到 test.txt 文件
FileWriter 类:(字符输出流),如果写出文件不存在会自动创建一个相对应的文件。使用 FileWriter 写出文件默认是覆盖原文件,如果要想在源文件添加内容不覆盖的话,需要构造参数添加 true 参数:看示例了
2:解按字符流的·处理流方式写出
BufferedWriter : 增加缓冲功能,避免频繁读写硬盘。 我这里: //new FileWriter(file),这里我只给了他文件位置,我没加 true 代表覆盖源文件
3:按字节流写入写出文件
1:按字节流的·节点流写入写出文件
如果我们要取的数据 图片、文件、音乐视频等类型,就必须使用字节流进行读取写出
注释:
字符流:以字符为单位,每次次读入或读出是 16 位数据。其只能读取字符类型数据。 (Java 代码接收数据为一般为 char 数组,也可以是别的)
字节流:以字节为单位,每次次读入或读出是 8 位数据。可以读任何类型数据,图片、文件、音乐视频等。 (Java 代码接收数据只能为 byte 数组)
FileInputStream:(字节输入流)
FileOutputStream:(字节输出流)
2:按字节流的·处理流写入写出文件
FileInputStream:(字节输入流)
FileOutputStream:(字节输出流)
BufferedInputStream:(带缓冲区字节输入流)
BufferedOutputStream:(带缓冲区字节输入流) 带缓冲区的处理流,缓冲区的作用的主要目的是:避免每次和硬盘打交道,提高数据访问的效率。