參考書籍:java程序設計基礎--陳國君
上一篇博客從概念上對java輸入輸出和文件讀寫做了闡述和實例展示,本篇主要說明java輸入輸出流類的層次關系。
下圖中,根據縮進可以清晰的看出各個類的繼承關系,這個和工程的文件縮進層次關系類似。
java.lang.Object
InputStream(字節輸入流類)
FileInputStream(文件字節輸入流類)
PipedInputStream(管道字節輸入流類)
FilterInputStream(過濾字節輸入流類)
BufferedInputStream(緩沖輸入流類)
LineNumberInputStream(行數字節輸入流類)
PushbackInputStream(壓回輸入流類)
DataInputStream(數據輸入流類)
SequenceInputStream(順序輸入流類)
OutputStream(字節輸出流類)
FileOutputStream(文件字節輸出流類)
PipedOutputStream(管道字節輸出流類)
FilterOutputStream(過濾字節輸出流類)
BufferedOutputStream(緩沖輸出流類)
DataOutputStream(數據輸出流類)
PrintStream(打印輸出流類)
Reader(字符輸入流類)
PipedReader(管道字符輸入流類)
BufferedReader(緩沖字符輸入流類)
LineNumberReader(行數字符輸入流類)
FilterReader(過濾字符輸入流類)
InputStreamReader(字符輸入流類)
FileReader(文件字符輸入流類)
StringReader(字符串輸入流類)
Writer(字符輸出流類)
PipedWriter(管道字符輸出流類)
BufferedWriter(緩沖字符輸出流類)
FilterWriter(過濾字符輸出流類)
OutputStreamWriter(字符輸出流類)
FileWriter(文件字符輸出流類)
StringWriter(字符串輸出流類)
File(文件流類)
RandomAccessFile(隨機訪問文件類)
InputStream、OutputStream、Reader、Writer等都是抽象類,所以一般而言,並不會直接使用這些類,因為不能表明她們具體對應那種I/O設備。通常都是根據這些類所派生的字類來對文件進行處理,因為這些字類與具體的I/O設備相對應。
原文: http://1395573703.iteye.com/blog/2353221