Java IO學習筆記總結
- 2019 年 12 月 31 日
- 筆記
文章目錄
Java IO學習筆記總結
前言
前面的八篇文章詳細的講述了Java IO的操作方法,文章列表如下
- 基本的文件操作
- 字元流和位元組流的操作
- InputStreamReader和OutputStreamWriter操作
- 記憶體操作流
- 管道流
- 列印流
- System對IO的支援
- BufferedReader和BufferedWriter
後續
位元組流
位元組流的操作都是基於
InputStream
和OutputStream
這兩個抽象類
InputStream
InputStream
是位元組輸入流,主要的功能是從文件中讀取數據,它的子類有記憶體操作流ByteArrayInputStream
,管道輸入流PipedInputStream
,和FileInputStream
OutPutStream
OutputStream
是位元組輸出流,主要功能是向文件中寫入數據,它的常用的子類有ByteArrayOutputStream
,FileOutputStream
,PipedOutputStream
,PrintStream
字元流
字元流的操作都是基於家
Writer
和Reader
這兩個抽象類的,一個是輸出流,一個是輸入流
Writer
寫入字元流的操作類,常用的子類有
PrintWriter
,BufferedWriter
,OutputStreamWriter
(位元組流和字元流之間的橋樑)
Reader
用於讀取字元流的抽象類,常用的子類有
BufferedReader
,InputStreamReader
最好用的
- 其中最高效的輸入和輸出當然是字元流操作的
BufferedReader
和BufferedWriter
- 最便捷的,格式化最好的當然是
PrintStream
,PrintWriter
這兩個類都採用了格式化的輸入和輸出
輸出流最好用的
- 輸出流中比較好用的是
PrintStream
,PrintWriter
- 輸出流最好用的當然是
BufferedWriter
和PrintWriter
的結合,例子如下;
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); }