Java--IO--节点流和处理流
- 节点流和处理流基本介绍
-
节点流可以接受不容数据 源的节点流:
- BufferedReader:可以接受包装所有的字符输入流,如:FileReader, CharArrayReader
- BufferedWriter: 可以包装所有的字符输出流,如:FileWriter,CharArrayWriter
- BufferedInputStream:可以包装所有的的字节输入流
- BufferedOutputStream:可以包装所有的字节输出流
- 是因为处理流中有一个Reader,或是Writer,Inputstream,OutputStream类型的属性,包装流会对传件来的字节流进行处理,包装,所以BufferedReader里面会有很对数据的操纵的方法,方便效率
-
BufferedReader的案例使用:
-
-
package com.model.io.reader; import java.io.BufferedReader; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; /** * @Description:测试类 * @Author: 张紫韩 * @Crete 2021/6/18 19:58 */ public class BufferedReaderDemo01 { public static void main(String[] args) throws IOException { String filePath="D:\\qq\\IDEA\\IdeaProjects\\java_mianshi_test\\mianshi_io\\src\\main\\resources\\Reader\\CopyDemo01.txt"; BufferedReader bufferedReader = new BufferedReader(new FileReader(filePath)); String readLine=null; //如果返回null代表内容已经都到最后的都已经读出来了 while((readLine=bufferedReader.readLine())!=null){ System.out.println(readLine); } /** * 我们关闭流的时候,只需要关闭外面的包装流即可,他会自动帮我们关闭掉我们传入的字节流 * 源码如下:当我们呢调用包装流的close时,他会调用字节流的close帮我们关闭 * public void close() throws IOException { * synchronized (lock) { * if (in == null) * return; * try { * in.close(); //in就是我们传入的字节流对象,他会自动关闭 * } finally { * in = null; * cb = null; * } * } * } * * */ bufferedReader.close(); } }
-
-
BufferedWriter的使用:
-
package com.model.io.writer.bufferedwriter; import java.io.BufferedWriter; import java.io.FileWriter; import java.io.IOException; /** * @Description:测试类 * @Author: 张紫韩 * @Crete 2021/6/18 20:06 */ public class BufferedWriterDemo01 { public static void main(String[] args) throws IOException { String filePath="D:\\qq\\IDEA\\IdeaProjects\\java_mianshi_test\\mianshi_io\\src\\main\\resources\\Writer\\a.txt"; BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(filePath,true)); bufferedWriter.write("hello,张紫韩"); bufferedWriter.newLine();//会根据系统帮我们创建一个换行符 bufferedWriter.write("hello1,张紫韩"); bufferedWriter.newLine();//会根据系统帮我们创建一个换行符 bufferedWriter.write("hello2,张紫韩"); bufferedWriter.newLine();//会根据系统帮我们创建一个换行符 bufferedWriter.write("hello3,张紫韩"); bufferedWriter.newLine();//会根据系统帮我们创建一个换行符 //会自动帮我们关闭 ,字节流 bufferedWriter.close(); } }
-
-
BufferedReader和BufferedWriter是按字符处理数据的我们不能对视频,pdf等二进制文件进行处理,会使文件损毁。处理的数据一般是文本文件