Java中的InputStream是一個抽象類,用于從數(shù)據(jù)源(如文件、網(wǎng)絡(luò)連接等)中讀取字節(jié)流。它提供了一系列的方法來讀取不同類型的數(shù)據(jù)。
以下是InputStream的一些常用方法:
- int read():從輸入流中讀取一個字節(jié)的數(shù)據(jù),并返回該字節(jié)的值(以整數(shù)形式)。
- int read(byte[] b):從輸入流中讀取最多b.length個字節(jié)的數(shù)據(jù),并將其存儲在字節(jié)數(shù)組b中。返回實際讀取的字節(jié)數(shù),如果已經(jīng)到達(dá)輸入流的末尾,則返回-1。
- int read(byte[] b, int off, int len):從輸入流中讀取最多l(xiāng)en個字節(jié)的數(shù)據(jù),并將其存儲在從偏移量off開始的字節(jié)數(shù)組b中。返回實際讀取的字節(jié)數(shù),如果已經(jīng)到達(dá)輸入流的末尾,則返回-1。
- long skip(long n):從輸入流中跳過n個字節(jié)的數(shù)據(jù),返回實際跳過的字節(jié)數(shù)。
- int available():返回在不阻塞情況下可以從輸入流中讀取的字節(jié)數(shù)。
- void close():關(guān)閉輸入流,釋放與之關(guān)聯(lián)的資源。
使用InputStream的一般步驟如下:
- 創(chuàng)建InputStream的具體實現(xiàn)類的對象,如FileInputStream、ByteArrayInputStream等。
- 調(diào)用read()或read(byte[] b)等方法讀取數(shù)據(jù),并進(jìn)行相應(yīng)的處理。
- 在讀取完數(shù)據(jù)后,關(guān)閉輸入流,釋放資源。
示例代碼如下:
try {
InputStream inputStream = new FileInputStream("input.txt");
int data = inputStream.read();
while (data != -1) {
System.out.println(data);
data = inputStream.read();
}
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
注意:在使用InputStream時,需要注意異常處理和資源的釋放,可以使用try-catch-finally語句塊來確保資源的正確釋放。