java io流大全_Java IO流系统整理
Java IO流的分類
Java中的流,可以從不同的角度進行分類。
按流向分類:
輸入流: 程序可以從中讀取數據的流。
輸出流: 程序能向其中寫入數據的流。
按數據傳輸單位分類:
字節流:以字節(8位二進制)為單位進行處理。主要用于讀寫諸如圖像或聲音的二進制數據。
字符流:以字符(16位二進制)為單位進行處理。
都是通過字節流的方式實現的。字符流是對字節流進行了封裝,方便操作。在最底層,所有的輸入輸出都是字節形式的。
后綴是Stream是字節流,而后綴是Reader,Writer是字符流。
按功能分類:
節點流:從特定的地方讀寫的流類,如磁盤或者一塊內存區域。
過濾流:使用節點流作為輸入或輸出。過濾流是使用一個已經存在的輸入流或者輸出流連接創建的。
不同的輸入輸出流
JDK提供的流繼承了四大類:InputStream(字節輸入流),OutputStream(字節輸出流),Reader(字符輸入流),Writer(字符輸出流)。
字節輸入流:
字節輸入流抽象類及其關鍵的方法:
類?InputStream
從輸入流中讀取數據的下一個字節。
從輸入流中讀取一定數量的字節,并將其存儲在緩沖區數組 b 中。
將輸入流中最多 len 個數據字節讀入 byte 數組。
輸入流的操作:
打開一個輸入流循環讀取關閉輸入流
這里使用InputStream的子類FileInputStream讀入文件:
抽象類InputStream的類層次:
字節數組輸入流ByteArrayInputStream
把字節數組作為源的輸入流。
相關例子:
字節數組輸入流:
字節數組輸出流:
字節輸出流:
字節輸出流的抽象類及其最關鍵的方法:
將 b.length 個字節從指定的 byte 數組寫入此輸出流。
將指定 byte 數組中從偏移量 off 開始的 len 個字節寫入此輸出流。
將指定的字節寫入此輸出流。
由此可以看出,只有最后一個方法才是抽象的,原因是前面兩個都調用了第三個抽象方法,這樣繼承這個抽象類的子類都必須提供抽象的write(int b)的實現,從而使得每個子類的實現都不一樣。
輸出流的操作:
打開輸出流循環寫入關閉輸入流
這里使用了OutputStream的子類FileOutputStream輸出到文件:
抽象類OutputStream的類層次結構:
過濾流:
過濾流不能直接跟文件打交道,只能通過節點流進行相關的操作。可以從其構造方法中看出:
需要傳入一個OutputStream。
在InputStream和OutputStream的子類中,
FilterInputStream和FilterOutputStream是過濾流,其又派生出子類DataInputStream和DataOutputStream數據輸入流和數據輸出流。
過濾流的主要特點是在輸入輸出數據同時對所傳輸的數據做指定類型或格式的轉換。
緩沖輸出流BufferedOutputStream
該類實現緩沖的輸出流。通過設置這種輸出流,應用程序就可以將各個字節寫入底層輸出流中,而不必針對每次字節寫入調用底層系統。
當緩沖區寫滿或者關閉輸出流時,一次性輸出到流,或者調用flush()方法主動將緩沖區輸出到流。
過濾流的使用例子:
使用過濾流類BufferedOutputStream和DataOutputStream裝飾FilterOutputStream的例子:
使用DataInputStream和DataOutputStream數據文件流的一般步驟:
創建字節文件流對象
基于字節文件流對象建立數據文件流對象
用數據文件流對象的方法對基本類型的數據進行輸入/輸出
字符輸入流:
字符輸出流:
本文轉自邴越博客園博客,原文鏈接:http://www.cnblogs.com/binyue/p/4562515.html,如需轉載請自行聯系原作者
總結
以上是生活随笔為你收集整理的java io流大全_Java IO流系统整理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 到滨江儿保地铁怎么坐在绿汀路去滨江儿保?
- 下一篇: java招投标网站源码_基于jsp的招标