|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
| 上一個類別 下一個類別 | 框架 無框架 | |||||||||
| 摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 | |||||||||
java.lang.Objectjava.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 類別,只要將以下形式的程式碼:
替換為:
|
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 中的 readb - 存儲讀取資料的緩衝區。
-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 中的 readb - 存儲讀取資料的緩衝區。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 中的 readFullyb - 存儲讀取資料的緩衝區。
EOFException - 如果此輸入串流在讀取所有位元組之前到達末尾。
IOException - 該串流已關閉並且包含的輸入串流在關閉後不支持讀取操作,或者發生其他 I/O 錯誤。FilterInputStream.in
public final void readFully(byte[] b,
int off,
int len)
throws IOException
DataInput 的 readFully 方法的常規協定。
從套件含的輸入串流中讀取此操作需要的位元組。
DataInput 中的 readFullyb - 存儲讀取資料的緩衝區。off - 資料的起始偏移量。len - 要讀取的位元組數。
EOFException - 如果此輸入串流在讀取所有位元組之前到達末尾。
IOException - 該串流已關閉並且包含的輸入串流在關閉後不支持讀取操作,或者發生其他 I/O 錯誤。FilterInputStream.in
public final int skipBytes(int n)
throws IOException
DataInput 的 skipBytes 方法的常規協定。
從套件含的輸入串流中讀取此操作需要的位元組。
DataInput 中的 skipBytesn - 要跳過的位元組數。
IOException - 如果包含的輸入串流不支持尋找操作;該串流已關閉並且包含的輸入串流在關閉後不支持讀取操作;發生其他 I/O 錯誤。
public final boolean readBoolean()
throws IOException
DataInput 的 readBoolean 方法的常規協定。
從套件含的輸入串流中讀取此操作需要的位元組。
DataInput 中的 readBooleanboolean 值。
EOFException - 如果此輸入串流已經到達末尾。
IOException - 該串流已關閉並且包含的輸入串流在關閉後不支持讀取操作,或者發生另其他 I/O 錯誤。FilterInputStream.in
public final byte readByte()
throws IOException
DataInput 的 readByte 方法的常規協定。
從所包含的輸入串流中讀取此操作需要的位元組。
DataInput 中的 readBytebyte 的形式表示。
EOFException - 如果此輸入串流已經到達末尾。
IOException - 該串流已關閉並且包含的輸入串流在關閉後不支持讀取操作,或者發生其他 I/O 錯誤。FilterInputStream.in
public final int readUnsignedByte()
throws IOException
DataInput 的 readUnsignedByte 方法的常規協定。
從套件含的輸入串流中讀取此操作需要的位元組。
DataInput 中的 readUnsignedByteEOFException - 如果此輸入串流已經到達末尾。
IOException - 該串流已關閉並且包含的輸入串流在關閉後不支持讀取操作,或者發生其他 I/O 錯誤。FilterInputStream.in
public final short readShort()
throws IOException
DataInput 的 readShort 方法的常規協定。
從套件含的輸入串流中讀取此操作需要的位元組。
DataInput 中的 readShortEOFException - 如果此輸入串流在讀取這兩個位元組之前到達末尾。
IOException - 該串流已關閉並且包含的輸入串流在關閉後不支持讀取操作,或者發生其他 I/O 錯誤。FilterInputStream.in
public final int readUnsignedShort()
throws IOException
DataInput 的 readUnsignedShort 方法的常規協定。
從套件含的輸入串流中讀取此操作需要的位元組。
DataInput 中的 readUnsignedShortEOFException - 如果此輸入串流在讀取這兩個位元組之前到達末尾。
IOException - 該串流已關閉並且包含的輸入串流在關閉後不支持讀取操作,或者發生其他 I/O 錯誤。FilterInputStream.in
public final char readChar()
throws IOException
DataInput 的 readChar 方法的常規協定。
從套件含的輸入串流中讀取此操作需要的位元組。
DataInput 中的 readCharchar。
EOFException - 如果此輸入串流在讀取這兩個位元組之前到達末尾。
IOException - 該串流已關閉並且包含的輸入串流在關閉後不支持讀取操作,或者發生其他 I/O 錯誤。FilterInputStream.in
public final int readInt()
throws IOException
DataInput 的 readInt 方法的常規協定。
從套件含的輸入串流中讀取此操作需要的位元組。
DataInput 中的 readIntint。
EOFException - 如果此輸入串流在讀取這四個位元組之前到達末尾。
IOException - 該串流已關閉並且包含的輸入串流在關閉後不支持讀取操作,或者發生其他 I/O 錯誤。FilterInputStream.in
public final long readLong()
throws IOException
DataInput 的 readLong 方法的常規協定。
從套件含的輸入串流中讀取此操作需要的位元組。
DataInput 中的 readLonglong。
EOFException - 如果此輸入串流在讀取這八個位元組之前到達末尾。
IOException - 該串流已關閉並且包含的輸入串流在關閉後不支持讀取操作,或者發生其他 I/O 錯誤。FilterInputStream.in
public final float readFloat()
throws IOException
DataInput 的 readFloat 方法的常規協定。
從套件含的輸入串流中讀取此操作需要的位元組。
DataInput 中的 readFloatfloat。
EOFException - 如果此輸入串流在讀取這四個位元組之前到達末尾。
IOException - 該串流已關閉並且包含的輸入串流在關閉後不支持讀取操作,或者發生其他 I/O 錯誤。readInt(),
Float.intBitsToFloat(int)
public final double readDouble()
throws IOException
DataInput 的 readDouble 方法的常規協定。
從套件含的輸入串流中讀取此操作需要的位元組。
DataInput 中的 readDoubledouble。
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 中的 readLineIOException - 如果發生 I/O 錯誤。BufferedReader.readLine(),
FilterInputStream.in
public final String readUTF()
throws IOException
DataInput 的 readUTF 方法的常規協定。
從套件含的輸入串流中讀取此操作需要的位元組。
DataInput 中的 readUTFEOFException - 如果此輸入串流在讀取所有位元組之前到達末尾。
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。