字節流和字符流(InputStream類和OutputStream類)


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():關閉輸出流並釋放與流相關的系統資源。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM