W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
java.lang.Object
|---java.io.InputStream
|---|---java.io.FilterInputStream
|---|---|---java.io.DataInputStream
public class DataInputStream
extends FilterInputStream
implements DataInput
數(shù)據(jù)輸入流允許應(yīng)用程序以與機器無關(guān)的方式從底層輸入流中讀取原始 Java 數(shù)據(jù)類型。 應(yīng)用程序使用數(shù)據(jù)輸出流寫入數(shù)據(jù),這些數(shù)據(jù)稍后可以由數(shù)據(jù)輸入流讀取。
DataInputStream 對于多線程訪問不一定是安全的。 線程安全是可選的,并且是此類中方法的用戶的責(zé)任。
Since:
JDK1.0
從類 java.io.FilterInputStream 繼承的字段 |
---|
in |
構(gòu)造函數(shù) | 描述 |
---|---|
DataInputStream(InputStream in) | 創(chuàng)建一個使用指定基礎(chǔ) InputStream 的 DataInputStream。 |
修飾符和類型 | 方法 | 描述 |
---|---|---|
int | read(byte[] b) | 從包含的輸入流中讀取一些字節(jié)并將它們存儲到緩沖區(qū)數(shù)組中 b。 |
int | read(byte[] b, int off, int len) | 從包含的輸入流中讀取最多 len 個字節(jié)的數(shù)據(jù)到一個字節(jié)數(shù)組中。 |
boolean | readBoolean() | 請參閱 DataInput 的 readBoolean 方法的一般約定。 |
byte | readByte() | 請參閱 DataInput 的 readByte 方法的一般約定。 |
char | readChar() | 請參閱 DataInput 的 readChar 方法的一般約定。 |
double | readDouble() | 請參閱 DataInput 的 readDouble 方法的一般約定。 |
float | readFloat() | 請參閱 DataInput 的 readFloat 方法的一般約定。 |
void | readFully(byte[] b) | 請參閱 DataInput 的 readFully 方法的一般約定。 |
void | readFully(byte[] b, int off, int len) | 請參閱 DataInput 的 readFully 方法的一般約定。 |
int | readInt() | 請參閱 DataInput 的 readInt 方法的一般約定。 |
String | readLine() | 已棄用。 此方法不能正確地將字節(jié)轉(zhuǎn)換為字符。 從 JDK 1.1 開始,讀取文本行的首選方法是通過 BufferedReader.readLine() 方法。 使用 DataInputStream 類讀取行的程序可以通過替換形式的代碼轉(zhuǎn)換為使用 BufferedReader 類 |
long | readLong() | 請參閱 DataInput 的 readLong 方法的一般約定。 |
short | readShort() | 請參閱 DataInput 的 readShort 方法的一般約定。 |
int | readUnsignedByte() | 請參閱 DataInput 的 readUnsignedByte 方法的一般約定。 |
int | readUnsignedShort() | 請參閱 DataInput 的 readUnsignedShort 方法的一般約定。 |
String | readUTF() | 請參閱 DataInput 的 readUTF 方法的一般約定。 |
static String | readUTF(DataInput in) | 從流中讀取以修改的 UTF-8 格式編碼的 Unicode 字符串的表示形式; 然后這個字符串作為字符串返回。 |
int | skipBytes(int n) | 請參閱 DataInput 的 skipBytes 方法的一般協(xié)定。 |
從類 java.io.FilterInputStream 繼承的方法 |
---|
available, close, mark, markSupported, read, reset, skip |
從類 java.lang.Object 繼承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
public DataInputStream(InputStream in)
創(chuàng)建一個使用指定基礎(chǔ) InputStream 的 DataInputStream。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
in | 指定的輸入流 |
public final int read(byte[] b) throws IOException
從包含的輸入流中讀取一些字節(jié)并將它們存儲到緩沖區(qū)數(shù)組中 b。 實際讀取的字節(jié)數(shù)以整數(shù)形式返回。 在輸入數(shù)據(jù)可用、檢測到文件結(jié)尾或引發(fā)異常之前,此方法會一直阻塞。
如果 b 為 null,則拋出 NullPointerException。 如果 b 的長度為零,則不讀取任何字節(jié)并返回 0; 否則,將嘗試讀取至少一個字節(jié)。 如果由于流位于文件末尾而沒有可用字節(jié),則返回值 -1; 否則,至少讀取一個字節(jié)并將其存儲到 b 中。
讀取的第一個字節(jié)存儲在元素 b[0] 中,下一個字節(jié)存儲在 b[1] 中,依此類推。 讀取的字節(jié)數(shù)最多等于 b 的長度。 設(shè) k 為實際讀取的字節(jié)數(shù); 這些字節(jié)將存儲在元素 b[0] 到 b[k-1] 中,而元素 b[k] 到 b[b.length-1] 不受影響。
read(b) 方法具有與以下相同的效果:
read(b, 0, b.length)
覆蓋:
讀入類 FilterInputStream
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
b | 讀取數(shù)據(jù)的緩沖區(qū)。 |
返回:
讀入緩沖區(qū)的總字節(jié)數(shù),如果由于到達流的末尾而沒有更多數(shù)據(jù),則為 -1。
Throws:
Throw名稱 | Throw描述 |
---|---|
IOException | 如果第一個字節(jié)由于文件結(jié)尾以外的任何原因無法讀取,則流已關(guān)閉并且底層輸入流不支持關(guān)閉后讀取,或者發(fā)生另一個 I/O 錯誤。 |
public final int read(byte[] b, int off, int len) throws IOException
從包含的輸入流中讀取最多 len 個字節(jié)的數(shù)據(jù)到一個字節(jié)數(shù)組中。嘗試讀取多達 len 個字節(jié),但可能會讀取較小的字節(jié)數(shù),可能為零。實際讀取的字節(jié)數(shù)以整數(shù)形式返回。
在輸入數(shù)據(jù)可用、檢測到文件結(jié)尾或引發(fā)異常之前,此方法會一直阻塞。
如果 len 為零,則不讀取任何字節(jié)并返回 0;否則,將嘗試讀取至少一個字節(jié)。如果由于流位于文件末尾而沒有可用字節(jié),則返回值 -1;否則,至少讀取一個字節(jié)并將其存儲到 b 中。
讀取的第一個字節(jié)存儲在元素 b[off] 中,下一個字節(jié)存儲在 b[off+1] 中,依此類推。讀取的字節(jié)數(shù)最多等于 len。設(shè) k 為實際讀取的字節(jié)數(shù);這些字節(jié)將存儲在元素 b[off] 到 b[off+k-1] 中,而元素 b[off+k] 到 b[off+len-1] 不受影響。
在每種情況下,元素 b[0] 到 b[off] 和元素 b[off+len] 到 b[b.length-1] 都不受影響。
覆蓋:
讀入類 FilterInputStream
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
b | 讀取數(shù)據(jù)的緩沖區(qū)。 |
off | 目標(biāo)數(shù)組 b 中的起始偏移量 |
len | 讀取的最大字節(jié)數(shù)。 |
返回:
讀入緩沖區(qū)的總字節(jié)數(shù),如果由于到達流的末尾而沒有更多數(shù)據(jù),則為 -1。
Throws:
Throw名稱 | Throw描述 |
---|---|
NullPointerException | 如果 b 為空。 |
IndexOutOfBoundsException | 如果 off 為負數(shù),len 為負數(shù),或者 len 大于 b.length - off |
IOException | 如果第一個字節(jié)由于文件結(jié)尾以外的任何原因無法讀取,則流已關(guān)閉并且底層輸入流不支持關(guān)閉后讀取,或者發(fā)生另一個 I/O 錯誤。 |
public final void readFully(byte[] b) throws IOException
請參閱 DataInput 的 readFully 方法的一般約定。
此操作的字節(jié)從包含的輸入流中讀取。
指定者:
接口 DataInput 中的 readFully
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
b | 讀取數(shù)據(jù)的緩沖區(qū)。 |
Throws:
Throw名稱 | Throw描述 |
---|---|
EOFException | 如果此輸入流在讀取所有字節(jié)之前到達末尾。 |
IOException | 流已關(guān)閉且包含的輸入流不支持關(guān)閉后讀取,或發(fā)生另一個 I/O 錯誤。 |
public final void readFully(byte[] b, int off, int len) throws IOException
請參閱 DataInput 的 readFully 方法的一般約定。
此操作的字節(jié)從包含的輸入流中讀取。
指定者:
接口 DataInput 中的 readFully
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
b | 讀取數(shù)據(jù)的緩沖區(qū)。 |
off | 數(shù)據(jù)的起始偏移量。 |
len | 要讀取的字節(jié)數(shù)。 |
Throws:
Throw名稱 | Throw描述 |
---|---|
EOFException | 如果此輸入流在讀取所有字節(jié)之前到達末尾。 |
IOException | 流已關(guān)閉且包含的輸入流不支持關(guān)閉后讀取,或發(fā)生另一個 I/O 錯誤。 |
public final int skipBytes(int n) throws IOException
請參閱 DataInput 的 skipBytes 方法的一般協(xié)定。
此操作的字節(jié)從包含的輸入流中讀取。
指定者:
接口 DataInput 中的 skipBytes
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
n | 要跳過的字節(jié)數(shù)。 |
返回:
跳過的實際字節(jié)數(shù)。
Throws:
Throw名稱 | Throw描述 |
---|---|
IOException | 如果包含的輸入流不支持查找,或者流已經(jīng)關(guān)閉并且包含的輸入流不支持關(guān)閉后的讀取,或者發(fā)生另一個 I/O 錯誤。 |
public final boolean readBoolean() throws IOException
請參閱 DataInput 的 readBoolean 方法的一般約定。
此操作的字節(jié)從包含的輸入流中讀取。
指定者:
接口 DataInput 中的 readBoolean
返回:
讀取的布爾值。
Throws:
Throw名稱 | Throw描述 |
---|---|
EOFException | 如果這個輸入流已經(jīng)結(jié)束。 |
IOException | 流已關(guān)閉且包含的輸入流不支持關(guān)閉后讀取,或發(fā)生另一個 I/O 錯誤。 |
public final byte readByte() throws IOException
請參閱 DataInput 的 readByte 方法的一般約定。
此操作的字節(jié)從包含的輸入流中讀取。
指定者:
接口 DataInput 中的 readByte
返回:
此輸入流的下一個字節(jié)為有符號的 8 位字節(jié)。
Throws:
Throw名稱 | Throw描述 |
---|---|
EOFException | 如果這個輸入流已經(jīng)結(jié)束。 |
IOException | 流已關(guān)閉且包含的輸入流不支持關(guān)閉后讀取,或發(fā)生另一個 I/O 錯誤。 |
public final int readUnsignedByte() throws IOException
請參閱 DataInput 的 readUnsignedByte 方法的一般約定。
此操作的字節(jié)從包含的輸入流中讀取。
指定者:
接口 DataInput 中的 readUnsignedByte
返回:
此輸入流的下一個字節(jié),解釋為無符號 8 位數(shù)。
Throws:
Throw名稱 | Throw描述 |
---|---|
EOFException | 如果這個輸入流已經(jīng)結(jié)束。 |
IOException | 流已關(guān)閉且包含的輸入流不支持關(guān)閉后讀取,或發(fā)生另一個 I/O 錯誤。 |
public final short readShort() throws IOException
請參閱 DataInput 的 readShort 方法的一般約定。
此操作的字節(jié)從包含的輸入流中讀取。
指定者:
接口 DataInput 中的 readShort
返回:
此輸入流的下兩個字節(jié),解釋為帶符號的 16 位數(shù)。
Throws:
Throw名稱 | Throw描述 |
---|---|
EOFException | 如果此輸入流在讀取兩個字節(jié)之前到達末尾。 |
IOException | 流已關(guān)閉且包含的輸入流不支持關(guān)閉后讀取,或發(fā)生另一個 I/O 錯誤。 |
public final int readUnsignedShort() throws IOException
請參閱 DataInput 的 readUnsignedShort 方法的一般約定。
此操作的字節(jié)從包含的輸入流中讀取。
指定者:
接口 DataInput 中的 readUnsignedShort
返回:
此輸入流的下兩個字節(jié),解釋為無符號 16 位整數(shù)。
Throws:
Throw名稱 | Throw描述 |
---|---|
EOFException | 如果此輸入流在讀取兩個字節(jié)之前到達末尾。 |
IOException | 流已關(guān)閉且包含的輸入流不支持關(guān)閉后讀取,或發(fā)生另一個 I/O 錯誤。 |
public final char readChar() throws IOException
請參閱 DataInput 的 readChar 方法的一般約定。
此操作的字節(jié)從包含的輸入流中讀取。
指定者:
接口 DataInput 中的 readChar
返回:
此輸入流的下兩個字節(jié),解釋為 char。
Throws:
Throw名稱 | Throw描述 |
---|---|
EOFException | 如果此輸入流在讀取兩個字節(jié)之前到達末尾。 |
IOException | 流已關(guān)閉且包含的輸入流不支持關(guān)閉后讀取,或發(fā)生另一個 I/O 錯誤。 |
public final int readInt() throws IOException
請參閱 DataInput 的 readInt 方法的一般約定。
此操作的字節(jié)從包含的輸入流中讀取。
指定者:
接口 DataInput 中的 readInt
返回:
此輸入流的下四個字節(jié),解釋為 int。
Throws:
Throw名稱 | Throw描述 |
---|---|
EOFException | 如果此輸入流在讀取四個字節(jié)之前到達末尾。 |
IOException | 流已關(guān)閉且包含的輸入流不支持關(guān)閉后讀取,或發(fā)生另一個 I/O 錯誤。 |
public final long readLong() throws IOException
請參閱 DataInput 的 readLong 方法的一般約定。
此操作的字節(jié)從包含的輸入流中讀取。
指定者:
接口 DataInput 中的 readLong
返回:
此輸入流的接下來的 8 個字節(jié),解釋為 long。
Throws:
Throw名稱 | Throw描述 |
---|---|
EOFException | 如果此輸入流在讀取八個字節(jié)之前到達末尾。 |
IOException | 流已關(guān)閉且包含的輸入流不支持關(guān)閉后讀取,或發(fā)生另一個 I/O 錯誤。 |
public final float readFloat() throws IOException
請參閱 DataInput 的 readFloat 方法的一般約定。
此操作的字節(jié)從包含的輸入流中讀取。
指定者:
接口 DataInput 中的 readFloat
返回:
此輸入流的下四個字節(jié),解釋為浮點數(shù)。
Throws:
Throw名稱 | Throw描述 |
---|---|
EOFException | 如果此輸入流在讀取四個字節(jié)之前到達末尾。 |
IOException | 流已關(guān)閉且包含的輸入流不支持關(guān)閉后讀取,或發(fā)生另一個 I/O 錯誤。 |
public final double readDouble() throws IOException
請參閱 DataInput 的 readDouble 方法的一般約定。
此操作的字節(jié)從包含的輸入流中讀取。
指定者:
接口 DataInput 中的 readDouble
返回:
此輸入流的接下來的八個字節(jié),解釋為雙精度。
Throws:
Throw名稱 | Throw描述 |
---|---|
EOFException | 如果此輸入流在讀取八個字節(jié)之前到達末尾。 |
IOException | 流已關(guān)閉且包含的輸入流不支持關(guān)閉后讀取,或發(fā)生另一個 I/O 錯誤。 |
@Deprecated public final String readLine() throws IOException
已棄用。 此方法不能正確地將字節(jié)轉(zhuǎn)換為字符。 從 JDK 1.1 開始,讀取文本行的首選方法是通過 BufferedReader.readLine() 方法。 使用 DataInputStream 類讀取行的程序可以通過替換形式的代碼轉(zhuǎn)換為使用 BufferedReader 類:
DataInputStream d = new DataInputStream(in);
with:
BufferedReader d
= new BufferedReader(new InputStreamReader(in));
請參閱 DataInput 的 readLine 方法的一般約定。
此操作的字節(jié)從包含的輸入流中讀取。
指定者:
接口 DataInput 中的 readLine
返回:
此輸入流中的下一行文本。
Throws:
Throw名稱 | Throw描述 |
---|---|
IOException | 如果發(fā)生 I/O 錯誤。 |
public final String readUTF() throws IOException
請參閱 DataInput 的 readUTF 方法的一般約定。
此操作的字節(jié)從包含的輸入流中讀取。
指定者:
接口 DataInput 中的 readUTF
返回:
一個 Unicode 字符串。
Throws:
Throw名稱 | Throw描述 |
---|---|
EOFException | 如果此輸入流在讀取所有字節(jié)之前到達末尾。 |
IOException | 流已關(guān)閉且包含的輸入流不支持關(guān)閉后讀取,或發(fā)生另一個 I/O 錯誤。 |
UTFDataFormatException | 如果字節(jié)不代表字符串的有效修改 UTF-8 編碼。 |
public static final String readUTF(DataInput in) throws IOException
從流中讀取以修改的 UTF-8 格式編碼的 Unicode 字符串的表示形式; 然后這個字符串作為字符串返回。 修改后的 UTF-8 表示的細節(jié)與 DataInput 的 readUTF 方法完全相同。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
in | 一個數(shù)據(jù)輸入流。 |
返回:
一個 Unicode 字符串。
Throws:
Throw名稱 | Throw描述 |
---|---|
EOFException | 如果輸入流在所有字節(jié)之前到達末尾。 |
IOException | 流已關(guān)閉且包含的輸入流不支持關(guān)閉后讀取,或發(fā)生另一個 I/O 錯誤。 |
UTFDataFormatException | 如果字節(jié)不代表 Unicode 字符串的有效修改 UTF-8 編碼。 |
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: