一、文件流(节点流)
FileReader、FileWriter、FileInputStream 和 FileOutputStream 是直接用来操作文件的,被称为文件流(节点流)。
二、字节流与字符流
1、字节流
一切皆为字节
一切文件数据(文本、图片、视频等)在存储时,都是以二进制数字的形式保存,都一个一个的字节,那么传输时一样如此。所以,字节流可以传输任意文件数据。在操作流的时候,我们要时刻明确,无论使用什么样的流对象,底层传输的始终为二进制数据。
2、字符流
当使用字节读取文本文件时,可能会有一个小问题,就是遇到中文字符时,可能不会显示完整的字符,那是因为一个中文字符可能占用多个字节存储。所以 Java 提供了一些字符类,以字符为单位读写数据,专门用于处理文本文件。
三、操作文件步骤
1、读取文件
1.建立一个流对象,将已存在的一个文件加载进流。
FileReader fr = new FileReader(new File(“Test.txt”));
2.创建一个临时存放数据的数组。
char[] ch = new char[1024];
3.调用流对象的读取方法将流中的数据读入到数组中。
fr.read(ch);
4. 关闭资源。
fr.close();
2、写入文件
1.创建流对象,建立数据存放文件
FileWriter fw = new FileWriter(new File(“Test.txt”));
2.调用流对象的写入方法,将数据写入流
fw.write(“atguigu-songhongkang”);
3.关闭流资源,并将流中的数据清空到文件中。
fw.close();
三、节点流
四、节点流(或文件流):注意点
1、定义文件路径时,注意:可以用 “/” 或者 “\”。
2、在写入一个文件时,如果使用构造器FileOutputStream(file),则目录下有同名文件将被覆盖。
3、如果使用构造器FileOutputStream(file,true),则目录下的同名文件不会被覆盖,在文件内容末尾追加内容。
4、在读取文件时,必须保证该文件已存在,否则报异常。
5、字节流操作字节,比如: .mp3, .avi, .rmvb, mp4, .jpg, .doc, .ppt;
6、字符流操作字符,只能操作普通文本文件。 最常见的文本文件: .txt, .java, .c, .cpp 等语言的源代码。尤其注意.doc,excel,ppt这些不是文本文件。