java--IO--节点流和处理流

Posted 张紫韩

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java--IO--节点流和处理流相关的知识,希望对你有一定的参考价值。

  1. 节点流和处理流基本介绍
    1. 节点流可以接受不容数据 源的节点流:

      1. BufferedReader:可以接受包装所有的字符输入流,如:FileReader, CharArrayReader
      2. BufferedWriter: 可以包装所有的字符输出流,如:FileWriter,CharArrayWriter
      3. BufferedInputStream:可以包装所有的的字节输入流
      4. BufferedOutputStream:可以包装所有的字节输出流
      5. 是因为处理流中有一个Reader,或是Writer,Inputstream,OutputStream类型的属性,包装流会对传件来的字节流进行处理,包装,所以BufferedReader里面会有很对数据的操纵的方法,方便效率
  2. BufferedReader的案例使用:

    1.  

    2.  

      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();
          }
      }
  3. BufferedWriter的使用:

    1. 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();
          }
      }
  4.  

    BufferedReader和BufferedWriter是按字符处理数据的我们不能对视频,pdf等二进制文件进行处理,会使文件损毁。处理的数据一般是文本文件   

     


     

     

以上是关于java--IO--节点流和处理流的主要内容,如果未能解决你的问题,请参考以下文章

java IO流

JAVA--IO

Java IO流

Java IO流

java io

输入/输出