通過數據流、序列化和文件系統提供系統輸入和輸出。
流按操作數據分爲兩種:字節流與字符流 。
流按流向分爲:輸入流,輸出流。
IO流常用基類
字節流的抽象基類:
InputStream | 此抽象類是表示字節輸入流的所有類的超類。 |
OutputStream | 此抽象類是表示輸出字節流的所有類的超類。 |
字符流的抽象基類:
Reader | 用於讀取字符流的抽象類。 |
Writer | 寫入字符流的抽象類。 |
他們都是抽象類,要new 就必須有匿名內部類實現相應方法:
注:由這四個類派生出來的子類名稱都是 以其父類名作爲子類名的後綴。
FileInputStream | FileInputStream 從文件系統中的某個文件中獲得輸入字節。 |
BufferedInputStream | BufferedInputStream 爲另一個輸入流添加一些功能,即緩衝輸入以及支持 mark 和 reset 方法的能力。 |
ObjectInputStream | ObjectInputStream 對以前使用 ObjectOutputStream 寫入的基本數據和對象進行反序列化。 |
PipedInputStream | 管道輸入流應該連接到管道輸出流;管道輸入流提供要寫入管道輸出流的所有數據字節。 |
DataInputStream | 數據輸入流允許應用程序以與機器無關方式從底層輸入流中讀取基本 Java 數據類型。 |
ByteArrayInputStream | ByteArrayInputStream 包含一個內部緩衝區,該緩衝區包含從流中讀取的字節。 |
不常用
FilterInputStream | FilterInputStream 包含其他一些輸入流,它將這些流用作其基本數據源,它可以直接傳輸數據或提供一些額外的功能。 |
PushbackInputStream | PushbackInputStream 爲另一個輸入流添加性能,即“推回 (push back)”或“取消讀取 (unread)”一個字節的能力。 |
SequenceInputStream | SequenceInputStream 表示其他輸入流的邏輯串聯。 |
FileReader | 用來讀取字符文件的便捷類。 |
BufferedReader | 從字符輸入流中讀取文本,緩衝各個字符,從而實現字符、數組和行的高效讀取。 |
LineNumberReader | 跟蹤行號的緩衝字符輸入流。 |
CharArrayReader | 此類實現一個可用作字符輸入流的字符緩衝區。 |
FilterReader | 用於讀取已過濾的字符流的抽象類。 |
PipedReader | 傳送的字符輸入流。 |
PushbackReader | 允許將字符推回到流的字符流 reader。 |
StringReader | 其源爲一個字符串的字符流。 |
InputStreamReader | InputStreamReader 是字節流通向字符流的橋樑:它使用指定的 charset 讀取字節並將其解碼爲字符。 |
OutputStreamWriter | OutputStreamWriter 是字符流通向字節流的橋樑:可使用指定的 charset 將要寫入流中的字符編碼成字節。 |
IO流中直屬於obj的類
File | 文件和目錄路徑名的抽象表示形式。 |
RandomAccessFile | 此類的實例支持對隨機訪問文件的讀取和寫入。該類只能操作文件 |
導入IO包中的類--------進行IO異常處理-------- 在finally中對流進行關閉
數據源:讀取,InputStream和Reader
目的:寫入:OutStream和Writer
數據是否是純文本:
是:字符流,Reader,Writer
源設備:內存、硬盤、鍵盤
目的設備:內存、硬盤、控制檯
鍵盤 System.in,硬盤 FileStream,內存 ArrayStream。
目的設備:
控制檯 System.out,硬盤FileStream,內存 ArrayStream