|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object java.io.InputStream java.io.FilterInputStream java.io.DataInputStream
public class DataInputStream
資料輸入串流允許應用程序以與機器無關方式從底層輸入串流中讀取基本 Java 資料型別。應用程序可以使用資料輸出串流寫入稍後由資料輸入串流讀取的資料。
DataInputStream 對於多執行緒存取不一定是安全的。 執行緒安全是可選的,它由此類別方法的使用者負責。
DataOutputStream
欄位摘要 |
---|
從類別 java.io.FilterInputStream 繼承的欄位 |
---|
in |
建構子摘要 | |
---|---|
DataInputStream(InputStream in)
使用指定的底層 InputStream 創建一個 DataInputStream。 |
方法摘要 | |
---|---|
int |
read(byte[] b)
從套件含的輸入串流中讀取一定數量的位元組,並將它們存儲到緩衝區陣列 b 中。 |
int |
read(byte[] b,
int off,
int len)
從套件含的輸入串流中將最多 len 個位元組讀入一個 byte 陣列中。 |
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()
已過時。 該方法無法將位元組正確轉換為字元。從 JDK 1.1 開始,讀取文本行的首選方法是使用 BufferedReader.readLine() 方法。使用 DataInputStream 類別讀取文本行的程序可以改為使用 BufferedReader 類別,只要將以下形式的程式碼:
替換為:DataInputStream d = new DataInputStream(in); BufferedReader d = new BufferedReader(new InputStreamReader(in)); |
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)
從串流 in 中讀取用 UTF-8 修改版格式編碼的 Unicode 字元格式的字元串;然後以 String 形式返回此字元串。 |
int |
skipBytes(int n)
參見 DataInput 的 skipBytes 方法的常規協定。 |
從類別 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)
in
- 指定輸入串流方法詳細資訊 |
---|
public final int read(byte[] b) throws IOException
b
中。以整數形式返回實際讀取的位元組數。在輸入資料可用、檢測到檔案末尾 (end of file) 或拋出異常之前,此方法將一直阻塞。
如果 b
為 null,則拋出 NullPointerException
。如果 b
的長度為 0,則不讀取位元組並返回 0
;否則,嘗試讀取至少一個位元組。如果因為串流位於檔案末尾而沒有位元組可用,則返回值 -1
;否則至少讀取一個位元組並將其存儲到 b
中。
將讀取的第一個位元組存儲到元素 b[0]
中,將下一個位元組存儲到 b[1]
中,依此類別推。讀取的位元組數至多等於 b
的長度。設 k
為實際讀取的位元組數;這些位元組將存儲在從 b[0]
到 b[k-1]
的元素中,b[k]
到 b[b.length-1]
的元素不受影響。
read(b)
方法與以下方法的效果相同:
read(b, 0, b.length)
FilterInputStream
中的 read
b
- 存儲讀取資料的緩衝區。
-1
。
IOException
- 如果不是因為串流位於檔案末尾而無法讀取第一個位元組;該串流已關閉並且底層輸入串流在關閉後不支持讀取操作;發生其他 I/O 錯誤。FilterInputStream.in
,
InputStream.read(byte[], int, int)
public final int read(byte[] b, int off, int len) throws IOException
len
個位元組讀入一個 byte 陣列中。盡量讀取 len
個位元組,但讀取的位元組數可能少於 len
個,也可能為零。以整數形式返回實際讀取的位元組數。
在輸入資料可用、檢測到檔案末尾或拋出異常之前,此方法將阻塞。
如果 len
為零,則不讀取任何位元組並返回 0
;否則,嘗試讀取至少一個位元組。如果因為串流位於檔案未尾而沒有位元組可用,則返回值 -1
;否則,至少讀取一個位元組並將其存儲到 b
中。
將讀取的第一個位元組存儲到元素 b[off]
中,將下一個位元組存儲到 b[off+1]
中,依此類別推。讀取的位元組數至多等於 len
。設 k 為實際讀取的位元組數;這些位元組將存儲在 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
中的 read
b
- 存儲讀取資料的緩衝區。off
- 目標陣列 b
中的起始偏移量len
- 讀取的最大位元組數。
-1
。
NullPointerException
- 如果 b
為 null
。
IndexOutOfBoundsException
- 如果 off
為負,len
為負,或者 len
大於 b.length - off
IOException
- 如果不是因為串流位於檔案末尾而無法讀取第一個位元組;該串流已關閉並且底層輸入串流在關閉後不支持讀取操作;發生其他 I/O 錯誤。FilterInputStream.in
,
InputStream.read(byte[], int, int)
public final void readFully(byte[] b) throws IOException
DataInput
的 readFully
方法的常規協定。
從套件含的輸入串流中讀取此操作需要的位元組。
DataInput
中的 readFully
b
- 存儲讀取資料的緩衝區。
EOFException
- 如果此輸入串流在讀取所有位元組之前到達末尾。
IOException
- 該串流已關閉並且包含的輸入串流在關閉後不支持讀取操作,或者發生其他 I/O 錯誤。FilterInputStream.in
public final void readFully(byte[] b, int off, int len) throws IOException
DataInput
的 readFully
方法的常規協定。
從套件含的輸入串流中讀取此操作需要的位元組。
DataInput
中的 readFully
b
- 存儲讀取資料的緩衝區。off
- 資料的起始偏移量。len
- 要讀取的位元組數。
EOFException
- 如果此輸入串流在讀取所有位元組之前到達末尾。
IOException
- 該串流已關閉並且包含的輸入串流在關閉後不支持讀取操作,或者發生其他 I/O 錯誤。FilterInputStream.in
public final int skipBytes(int n) throws IOException
DataInput
的 skipBytes
方法的常規協定。
從套件含的輸入串流中讀取此操作需要的位元組。
DataInput
中的 skipBytes
n
- 要跳過的位元組數。
IOException
- 如果包含的輸入串流不支持尋找操作;該串流已關閉並且包含的輸入串流在關閉後不支持讀取操作;發生其他 I/O 錯誤。public final boolean readBoolean() throws IOException
DataInput
的 readBoolean
方法的常規協定。
從套件含的輸入串流中讀取此操作需要的位元組。
DataInput
中的 readBoolean
boolean
值。
EOFException
- 如果此輸入串流已經到達末尾。
IOException
- 該串流已關閉並且包含的輸入串流在關閉後不支持讀取操作,或者發生另其他 I/O 錯誤。FilterInputStream.in
public final byte readByte() throws IOException
DataInput
的 readByte
方法的常規協定。
從所包含的輸入串流中讀取此操作需要的位元組。
DataInput
中的 readByte
byte
的形式表示。
EOFException
- 如果此輸入串流已經到達末尾。
IOException
- 該串流已關閉並且包含的輸入串流在關閉後不支持讀取操作,或者發生其他 I/O 錯誤。FilterInputStream.in
public final int readUnsignedByte() throws IOException
DataInput
的 readUnsignedByte
方法的常規協定。
從套件含的輸入串流中讀取此操作需要的位元組。
DataInput
中的 readUnsignedByte
EOFException
- 如果此輸入串流已經到達末尾。
IOException
- 該串流已關閉並且包含的輸入串流在關閉後不支持讀取操作,或者發生其他 I/O 錯誤。FilterInputStream.in
public final short readShort() throws IOException
DataInput
的 readShort
方法的常規協定。
從套件含的輸入串流中讀取此操作需要的位元組。
DataInput
中的 readShort
EOFException
- 如果此輸入串流在讀取這兩個位元組之前到達末尾。
IOException
- 該串流已關閉並且包含的輸入串流在關閉後不支持讀取操作,或者發生其他 I/O 錯誤。FilterInputStream.in
public final int readUnsignedShort() throws IOException
DataInput
的 readUnsignedShort
方法的常規協定。
從套件含的輸入串流中讀取此操作需要的位元組。
DataInput
中的 readUnsignedShort
EOFException
- 如果此輸入串流在讀取這兩個位元組之前到達末尾。
IOException
- 該串流已關閉並且包含的輸入串流在關閉後不支持讀取操作,或者發生其他 I/O 錯誤。FilterInputStream.in
public final char readChar() throws IOException
DataInput
的 readChar
方法的常規協定。
從套件含的輸入串流中讀取此操作需要的位元組。
DataInput
中的 readChar
char
。
EOFException
- 如果此輸入串流在讀取這兩個位元組之前到達末尾。
IOException
- 該串流已關閉並且包含的輸入串流在關閉後不支持讀取操作,或者發生其他 I/O 錯誤。FilterInputStream.in
public final int readInt() throws IOException
DataInput
的 readInt
方法的常規協定。
從套件含的輸入串流中讀取此操作需要的位元組。
DataInput
中的 readInt
int
。
EOFException
- 如果此輸入串流在讀取這四個位元組之前到達末尾。
IOException
- 該串流已關閉並且包含的輸入串流在關閉後不支持讀取操作,或者發生其他 I/O 錯誤。FilterInputStream.in
public final long readLong() throws IOException
DataInput
的 readLong
方法的常規協定。
從套件含的輸入串流中讀取此操作需要的位元組。
DataInput
中的 readLong
long
。
EOFException
- 如果此輸入串流在讀取這八個位元組之前到達末尾。
IOException
- 該串流已關閉並且包含的輸入串流在關閉後不支持讀取操作,或者發生其他 I/O 錯誤。FilterInputStream.in
public final float readFloat() throws IOException
DataInput
的 readFloat
方法的常規協定。
從套件含的輸入串流中讀取此操作需要的位元組。
DataInput
中的 readFloat
float
。
EOFException
- 如果此輸入串流在讀取這四個位元組之前到達末尾。
IOException
- 該串流已關閉並且包含的輸入串流在關閉後不支持讀取操作,或者發生其他 I/O 錯誤。readInt()
,
Float.intBitsToFloat(int)
public final double readDouble() throws IOException
DataInput
的 readDouble
方法的常規協定。
從套件含的輸入串流中讀取此操作需要的位元組。
DataInput
中的 readDouble
double
。
EOFException
- 如果此輸入串流在讀取這八個位元組之前到達末尾。
IOException
- 該串流已關閉並且包含的輸入串流在關閉後不支持讀取操作,或者發生其他 I/O 錯誤。readLong()
,
Double.longBitsToDouble(long)
@Deprecated public final String readLine() throws IOException
BufferedReader.readLine()
方法。使用 DataInputStream
類別讀取文本行的程序可以改為使用 BufferedReader
類別,只要將以下形式的程式碼:
替換為:DataInputStream d = new DataInputStream(in);
BufferedReader d = new BufferedReader(new InputStreamReader(in));
DataInput
的 readLine
方法的常規協定。
從套件含的輸入串流中讀取此操作需要的位元組。
DataInput
中的 readLine
IOException
- 如果發生 I/O 錯誤。BufferedReader.readLine()
,
FilterInputStream.in
public final String readUTF() throws IOException
DataInput
的 readUTF
方法的常規協定。
從套件含的輸入串流中讀取此操作需要的位元組。
DataInput
中的 readUTF
EOFException
- 如果此輸入串流在讀取所有位元組之前到達末尾。
IOException
- 該串流已關閉並且包含的輸入串流在關閉後不支持讀取操作,或者發生其他 I/O 錯誤。
UTFDataFormatException
- 如果這些位元組不表示一個有效的、UTF-8 修改版編碼的字元串。readUTF(java.io.DataInput)
public static final String readUTF(DataInput in) throws IOException
in
中讀取用 UTF-8 修改版格式編碼的 Unicode 字元格式的字元串;然後以 String
形式返回此字元串。UTF-8 修改版表示形式的一些細節與 DataInput
的 readUTF
方法完全相同。
in
- 資料輸入串流。
EOFException
- 如果此輸入串流在讀取所有位元組之前到達末尾。
IOException
- 該串流已關閉並且包含的輸入串流在關閉後不支持讀取操作,或者發生其他 I/O 錯誤。
UTFDataFormatException
- 如果這些位元組不表示一個有效的、UTF-8 修改版編碼的 Unicode 字元串。readUnsignedShort()
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。