-
字节流可以从一个特定的数据源读写数据
-
访问文件
-
访问数组
-
访问管道
-
-
处理流(包装流)是连接在已存在的流(字节流或处理流)之上,为程序提供更强大的读写功能。
-
处理流对节点流进行包装,使用了修饰器设计模式,不会直接与数据源相连。
- 性能提高:主要增加缓冲的方式来提高输入输出效率
- 操作的便捷:处理流可以提供一些列便捷的方法来一次输入输出大批量的数据,使用更加灵活方便。
-
bufferedReader
BufferedWriter
封装reader和writer,可以直接调用上面的几种文件操作流。 -
BufferedReader 和 BufferedWriter 尽量不要去操作二进制文件(图片,音乐,音频等)
-
字节处理流:(用于处理二进制文件)
BufferedInputStream
BufferedOutputStream
读文件:
@Test
public void readFile() throws IOException {
String FilePath = "d:\\hello.txt";
BufferedReader bufferedReader = new BufferedReader(new FileReader(FilePath));
//读取数据
String line;//读取每行数据存取
while((line = bufferedReader.readLine())!=null){
System.out.println(line);
}
//关闭流,只需要关闭BufferedReader,底层会自动关闭节点流
bufferedReader.close();
}
写入文件:
@Test
public void writer() throws IOException {
String filePath = "d:\\aa.txt";
BufferedWriter bufferedWriter = null;
bufferedWriter = new BufferedWriter(new FileWriter(filePath));
String aa="ssdsads";
String bb="sadas";
bufferedWriter.write(aa);
//换行
bufferedWriter.newLine();
bufferedWriter.write(bb);
if(bufferedWriter!=null) {
bufferedWriter.close();
}
}