java流包括字節流和字符流,字節流通過I/O設備以字節數據的方式讀入,而字符流則是通過字節流讀入數據轉換成字符“流"的形式由用戶驅使。
InputStream是所有字節輸入流的父類。OutputStream是所有字節輸出流的父類。
在Java的I/O流中所有對字節流處理的類,都繼承自InputStream類和OutputStream類,這是兩個抽象類。
1:InputStream類
InputStream類是一個抽象類,作為字節輸入流的直接或間接父類,它定義了許多有用的、所有子類必須的方法,包括讀取、移動指針、標記、復位、關閉等方法。InputStream類的常用方法有以下幾種:
Public abstractintread():讀取一個byte數據,返回值是高位補0的int類型值。
Public int read(byteb[]):讀取b.length個字節的數據放到b數組中。返回值是讀取的字節數。該方法實際上是調用下一個方法實現的。
public int read(byteb[],intoff,intlen):從輸入流中最多讀取len個字節數據,存放到偏移量為off的b數組中。
public int availabel():返回輸入流中可以讀取的字節數。注意,若輸入阻塞,當前線程將被掛起,如果InputStream對象調用這個方法的話,它只會返回0,這個方法須由InputStream類的子類調用才有用。
public long skip(longn):忽略輸入流中的n個字節,返回值是實際忽略的字節數,跳過一些字節來讀取。
public int close():在使用完之后,必須對打開的流進行關閉。
2:OutputStream類
OutputSteam類也是抽象類,作為字節輸出流的直接或間接父類,當程序需要向外部設備輸出數據時,需要創建OutputStream類的某一個子類對象來完成。與InputStream類似,這些方法也可能拋出IOExpection異常。OutputStream類中的常用方法有以下幾種:
public void write(byteb[]):將參數b的字節寫到輸出流中。
public void write(byteb[],intoff,intlen):將參數b的從偏移量off開始的len個字節寫入到輸出流中。
public abstractvoid write(intb):先將int轉換成byte類型,低字節寫入到輸出流中。
public void flush():將數據緩沖區中的數據全部輸出,清空緩沖區。
public void close():關閉輸出流並釋放與流相關的系統資源。