補充:由於這篇文章是基於上一篇的延續,所以將上一篇進行簡單的回顧,以便理解本節內容。數組
1)輸入輸出(I/O)流分類:共分爲字節型輸入輸出流和字符型輸入輸出流:緩存
(1)字節型輸入輸出流:面向byte數組,它們的父類是InputStream和OutputStream函數
具體內容參考下邊的連接:編碼
Java:基於代碼實戰的字節流父類、文件流、緩衝流、對象流詳解spa
(2)字符型輸入輸出流:面向char數組或者String,它們的父類是Reader和Writer3d
具體內容,見下邊的具體講解。對象
2)經常使用輸入輸出流圖譜:blog
(1)字符型輸入輸出流的父類:字符串
1)簡介:get
Reader:是字符型輸入流的父類,能夠針對char數組或者String類型的內容,且是抽象類,不能用自身的構造函數初始化;
Writer:是字符型輸出流的父類,能夠針對char數組或者String類型的內容,且是抽象類,不能自身的構造函數初始化。
2)Reader的經常使用方法:
Int read(): 讀取一個字符,返回int值」低16」位有效。
Int read(char[] chs): 從該流中讀取一個字符串數組的length個字符並存入該數組,返回值爲實際讀取到的字符量。
3)Wtriter的經常使用方法:
Void write(int c):寫出一個字符,寫出給定int值」低16」位表示的字符。
Void write(char[] chs):將給定字符數組中全部字符寫出。
Void write(String str):將給定的字符串寫出。
Void write(char[] chs, int offset, int len):將給定的字符數組中從offset處開始連續的len個字符寫出。
(2)字符轉換流的輸入輸出:
1)字符轉換輸入流:InputStreamReader
使用該流能夠設置字符集,並按照指定的字符集從流中按照該編碼將字節數據轉換爲字符並讀取。經常使用的構造函數以下:
InputStreamReader(InputStream in, String charsetName)
基於給定的字節輸入流以及字符編碼建立InputStreamReader
InputStreamReader(InputStream in)
構造方法會根據系統默認字符集穿件InputStreamReader
2)字符轉換輸出流OutputStreamWriter
使用該流能夠設置字符集,並按照指定的字符集將字符轉換爲對應字節後經過該流寫出。經常使用的構造函數以下:
OutputStreamWriter(OutputStream out, String charsetName)
基於給定的字節輸出流以及字符編碼建立OutputStreamWriter
OutputStreamWriter(OutputStream out)
構造方法會根據系統默認字符集建立OutputStreamWriter
(3)緩衝字符流的輸入輸出:
1)緩衝字符輸入流BufferedReader:
其內部提供了緩衝區,能夠提升讀取的效率.經常使用的構造函數:
BufferedReader(Reader reader)
補充:BufferedReader提供了一個能夠便於讀取一行字符串的方法:
String readLine():該方法連續讀取一行字符串,知道讀取到換行符爲止,返回字符串中不包含該換行符。
2) 緩衝字符輸出流BufferedWriter:
其內部提供了緩衝區,能夠提升內容寫出的效率.經常使用的構造函數:
BufferedWriter(Writer out)
代碼應用實例一(利用字符流,按行讀取文件中的內容):
InputStreamReader和BufferedReader連用:
代碼應用實例二(將指定內容寫入到文件中):
OutputStreamWriter和BufferedWriter連用:
(4)過濾字符流:
1)過濾流PrintWriter簡介:
PrintWriter是具備自動涮新緩衝的字符輸出流。提供了比較豐富的構造方法,以下:
PrintWriter(File file)
PrintWriter(String fileName)
PrintWriter(OutputStream out)
PrintWriter(OutputStream out, boolean autoFlush)
PrintWriter(Writer writer)
PrintWriter(Writer writer, boolean autoFlush)
其中參數爲OutputStream與Writer的構造方法提供了一個能夠傳出boolean值參數,該參數用於表示PrintWriter是否具備自動刷新。
2)過濾流PrintWriter的經常使用方法:
print(String s)和println(String s)方法: PrintWriter提供了豐富的重載print與println方法。
其中println方法在輸出目標數據後自動輸出一個系統支持的換行符。
若該流是具備自動刷新的,那麼每當經過println方法寫出的內容都會被實際寫出,而不是進行緩存。
Write(String s):將字符串寫入到文件中
3)PrintWriter代碼實例: