1. 程式人生 > 其它 >java--IO--節點流和處理流

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. 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等二進位制檔案進行處理,會使檔案損毀。處理的資料一般是文字檔案