Java IO學習筆記總結

  • 2019 年 12 月 31 日
  • 筆記

文章目錄

  1. 1. Java IO學習筆記總結
    1. 1.1. 前言
    2. 1.2. 後續
      1. 1.2.1. 位元組流
        1. 1.2.1.1. InputStream
        2. 1.2.1.2. OutPutStream
      2. 1.2.2. 字元流
        1. 1.2.2.1. Writer
        2. 1.2.2.2. Reader
    3. 1.3. 最好用的
      1. 1.3.1. 輸出流最好用的
      2. 1.3.2. 輸入流最好用的
      3. 1.3.3. 綜合運用

Java IO學習筆記總結

前言

前面的八篇文章詳細的講述了Java IO的操作方法,文章列表如下

後續

位元組流

位元組流的操作都是基於InputStreamOutputStream這兩個抽象類

InputStream

InputStream位元組輸入流,主要的功能是從文件中讀取數據,它的子類有記憶體操作流 ByteArrayInputStream,管道輸入流PipedInputStream,和FileInputStream

OutPutStream

OutputStream是位元組輸出流,主要功能是向文件中寫入數據,它的常用的子類有ByteArrayOutputStream, FileOutputStream, PipedOutputStream,PrintStream

字元流

字元流的操作都是基於家WriterReader這兩個抽象類的,一個是輸出流,一個是輸入流

Writer

寫入字元流的操作類,常用的子類有PrintWriter,BufferedWriter,OutputStreamWriter(位元組流和字元流之間的橋樑)

Reader

用於讀取字元流的抽象類,常用的子類有BufferedReaderInputStreamReader

最好用的

  • 其中最高效的輸入和輸出當然是字元流操作的BufferedReaderBufferedWriter
  • 最便捷的,格式化最好的當然是PrintStream,PrintWriter這兩個類都採用了格式化的輸入和輸出

輸出流最好用的

  • 輸出流中比較好用的是PrintStream,PrintWriter
  • 輸出流最好用的當然是BufferedWriterPrintWriter的結合,例子如下;
File file=new File("/tmp"+File.separator+"test"+File.separator+"test.txt");  //用BufferedWriter實例化PrintWriter,顯著提高寫入的效率  PrintWriter printWriter=new PrintWriter(new BufferedWriter(new FileWriter(file)));  String name="陳加兵";  int age=22;  float grade=99.9f;  printWriter.printf("姓名:%s,年齡:%s,grade:%s",name,age,grade);  //格式化的寫入  printWriter.close();

輸入流最好用的

  • 本人覺得輸入流中BufferedReader功能已經很強大了

綜合運用

有時候在寫程式的時候,你得到了一個位元組流,但是你想要創建的卻是字元流對象,怎麼辦了呢?前面已經說過,位元組流轉換成字元流對象的橋樑是InputStreamReader和InputStreamWiter他們的作用是傳入位元組流對象構造字元流對象,因此可以完美的實現位元組流轉換成字元流,這個是非常重要的

 // 讀取鍵盤的輸入的數據,System.in是位元組流,因此要想創建高效流必須使用轉換流InputStreamReader  BufferedReader br = new BufferedReader(new InputStreamReader(System.in));  String line;  //從鍵盤讀取輸入的數據,直到讀到bye結束  while ((line = br.readLine()) != null) {  	if ("bye".equals(line)) {  		break;  	}  	System.out.println(line);  }