流操作
阿新 • • 發佈:2017-06-24
code int pen span ava 寫入 數組 例如 輸入流
我們經常需要從文件中讀取數據,或者儲存數據進文件。在java中,將一個對象(可以讀入一個字節序列)稱作為輸入流,將一個對象(可以向其中寫入一個字節序列)稱作為輸出流。在java中,流操作的基礎是抽象類InputStream和OutputStream.
InputStream類中有一個抽象方法:
abstract int read();
這個抽象方法的目的是從輸入流中讀取數據的下一個字節。在繼承這個類時,必須實現這個方法。
OutputStream類:
abstract void write(int b);
將指定的字節寫入到輸出流。
例如,FileInputStream繼承InputStream,從文件中的讀取字節。但是它只能讀取字節和字節數組。如果需要做其它相關的操作,例如從文件中讀取java數據類型,例如DataInputStream,這個類的方法可以從流中讀取幾個字節,解釋為你所需要類型的數據。但是它不能從文件中直接讀取數據,它需要在讀取數據的類的基礎之上進行。
java設計了這樣的一種機制:首先需要諸如FileInputStream或者URL類中的openStream方法返回的輸入流等等,這種可以在文件中獲取字節的輸入流,然後在此基礎上,構建諸如DataInputStream和PrintWriter等類型將字節組裝成為更有用的數據類型,它們在原聲字節流之上添加了額外的功能。此外,如果想要添加緩存功能,還可以再加上BufferedInputStream。例如:
FileInputStream fin = new FileInputStream("xx.txt"); DataInputStream din = new DataInputStream(fin);
BufferedInputStream bin = new BufferedInputStream(din);
流操作