java.io java
類 DataInputStream數組
java.lang.Object安全
┗java.io.InputStream多線程
┗java.io.FilterInputStream編碼
┗java.io.DataInputStream線程
全部已實現的接口: code
Closeable, DataInputorm
public class DataInputStream extends FilterInputStream implements DataInput繼承
數據輸入流容許應用程序以與機器無關方式從底層輸入流中讀取基本 Java 數據類型。應用程序可使用數據輸出流寫入稍後由數據輸入流讀取的數據。接口
DataInputStream 對於多線程訪問不必定是安全的。 線程安全是可選的,它由此類方法的使用者負責。
字段摘要
從類 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
構造方法詳細信息
DataInputStream
public DataInputStream(InputStream in)
使用指定的底層 InputStream 建立一個 DataInputStream。
參數:
in - 指定輸入流
方法詳細信息
read
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 錯誤。
read
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 錯誤。
readFully
public final void readFully(byte[] b) throws IOException
參見 DataInput 的 readFully 方法的常規協定。
從包含的輸入流中讀取此操做須要的字節。
指定者:
接口 DataInput 中的 readFully
參數:
b - 存儲讀取數據的緩衝區。
拋出:
EOFException - 若是此輸入流在讀取全部字節以前到達末尾。
IOException - 該流已關閉而且包含的輸入流在關閉後不支持讀取操做,或者發生其餘 I/O 錯誤。
readFully
public final void readFully(byte[] b, int off, int len) throws IOException
參見 DataInput 的 readFully 方法的常規協定。
從包含的輸入流中讀取此操做須要的字節。
指定者:
接口 DataInput 中的 readFully
參數:
b - 存儲讀取數據的緩衝區。
off - 數據的起始偏移量。
len - 要讀取的字節數。
拋出:
EOFException - 若是此輸入流在讀取全部字節以前到達末尾。
IOException - 該流已關閉而且包含的輸入流在關閉後不支持讀取操做,或者發生其餘 I/O 錯誤。
skipBytes
public final int skipBytes(int n) throws IOException
參見 DataInput 的 skipBytes 方法的常規協定。
從包含的輸入流中讀取此操做須要的字節。
指定者:
接口 DataInput 中的 skipBytes
參數:
n - 要跳過的字節數。
返回:
實際跳過的字節數。
拋出:
IOException - 若是包含的輸入流不支持查找操做;該流已關閉而且包含的輸入流在關閉後不支持讀取操做;發生其餘 I/O 錯誤。
readBoolean
public final boolean readBoolean() throws IOException
參見 DataInput 的 readBoolean 方法的常規協定。
從包含的輸入流中讀取此操做須要的字節。
指定者:
接口 DataInput 中的 readBoolean
返回:
讀取的 boolean 值。
拋出:
EOFException - 若是此輸入流已經到達末尾。
IOException - 該流已關閉而且包含的輸入流在關閉後不支持讀取操做,或者發生另其餘 I/O 錯誤。
readByte
public final byte readByte() throws IOException
參見 DataInput 的 readByte 方法的常規協定。
從所包含的輸入流中讀取此操做須要的字節。
指定者:
接口 DataInput 中的 readByte
返回:
此輸入流的下一個字節,以有符號 8 位 byte 的形式表示。
拋出:
EOFException - 若是此輸入流已經到達末尾。
IOException - 該流已關閉而且包含的輸入流在關閉後不支持讀取操做,或者發生其餘 I/O 錯誤。
readUnsignedByte
public final int readUnsignedByte() throws IOException
參見 DataInput 的 readUnsignedByte 方法的常規協定。
從包含的輸入流中讀取此操做須要的字節。
指定者:
接口 DataInput 中的 readUnsignedByte
返回:
此輸入流的下一個字節,將它解釋爲一個無符號 8 位數。
拋出:
EOFException - 若是此輸入流已經到達末尾。
IOException - 該流已關閉而且包含的輸入流在關閉後不支持讀取操做,或者發生其餘 I/O 錯誤。
readShort
public final short readShort() throws IOException
參見 DataInput 的 readShort 方法的常規協定。
從包含的輸入流中讀取此操做須要的字節。
指定者:
接口 DataInput 中的 readShort
返回:
此輸入流的下兩個字節,將它們解釋爲一個有符號 16 位數。
拋出:
EOFException - 若是此輸入流在讀取這兩個字節以前到達末尾。
IOException - 該流已關閉而且包含的輸入流在關閉後不支持讀取操做,或者發生其餘 I/O 錯誤。
readUnsignedShort
public final int readUnsignedShort() throws IOException
參見 DataInput 的 readUnsignedShort 方法的常規協定。
從包含的輸入流中讀取此操做須要的字節。
指定者:
接口 DataInput 中的 readUnsignedShort
返回:
此輸入流的下兩個字節,將它們解釋爲一個無符號 16 位整數。
拋出:
EOFException - 若是此輸入流在讀取這兩個字節以前到達末尾。
IOException - 該流已關閉而且包含的輸入流在關閉後不支持讀取操做,或者發生其餘 I/O 錯誤。
readChar
public final char readChar() throws IOException
參見 DataInput 的 readChar 方法的常規協定。
從包含的輸入流中讀取此操做須要的字節。
指定者:
接口 DataInput 中的 readChar
返回:
此輸入流的下兩個字節,將它們解釋爲一個 char。
拋出:
EOFException - 若是此輸入流在讀取這兩個字節以前到達末尾。
IOException - 該流已關閉而且包含的輸入流在關閉後不支持讀取操做,或者發生其餘 I/O 錯誤。
readInt
public final int readInt() throws IOException
參見 DataInput 的 readInt 方法的常規協定。
從包含的輸入流中讀取此操做須要的字節。
指定者:
接口 DataInput 中的 readInt
返回:
此輸入流的下四個字節,將它們解釋爲一個 int。
拋出:
EOFException - 若是此輸入流在讀取這四個字節以前到達末尾。
IOException - 該流已關閉而且包含的輸入流在關閉後不支持讀取操做,或者發生其餘 I/O 錯誤。
readLong
public final long readLong() throws IOException
參見 DataInput 的 readLong 方法的常規協定。
從包含的輸入流中讀取此操做須要的字節。
指定者:
接口 DataInput 中的 readLong
返回:
此輸入流的下八個字節,將它們解釋爲一個 long。
拋出:
EOFException - 若是此輸入流在讀取這八個字節以前到達末尾。
IOException - 該流已關閉而且包含的輸入流在關閉後不支持讀取操做,或者發生其餘 I/O 錯誤。
readFloat
public final float readFloat() throws IOException
參見 DataInput 的 readFloat 方法的常規協定。
從包含的輸入流中讀取此操做須要的字節。
指定者:
接口 DataInput 中的 readFloat
返回:
此輸入流的下四個字節,將它們解釋爲一個 float。
拋出:
EOFException - 若是此輸入流在讀取這四個字節以前到達末尾。
IOException - 該流已關閉而且包含的輸入流在關閉後不支持讀取操做,或者發生其餘 I/O 錯誤。
readDouble
public final double readDouble() throws IOException
參見 DataInput 的 readDouble 方法的常規協定。
從包含的輸入流中讀取此操做須要的字節。
指定者:
接口 DataInput 中的 readDouble
返回:
此輸入流的下八個字節,將它們解釋爲一個 double。
拋出:
EOFException - 若是此輸入流在讀取這八個字節以前到達末尾。
IOException - 該流已關閉而且包含的輸入流在關閉後不支持讀取操做,或者發生其餘 I/O 錯誤。
readLine
@Deprecated
public final String readLine() throws IOException
已過期。 該方法沒法將字節正確轉換爲字符。從 JDK 1.1 開始,讀取文本行的首選方法是使用 BufferedReader.readLine() 方法。使用 DataInputStream 類讀取文本行的程序能夠改成使用 BufferedReader 類,只要將如下形式的代碼:
DataInputStream d = new DataInputStream(in);
替換爲:
BufferedReader d
= new BufferedReader(new InputStreamReader(in));
參見 DataInput 的 readLine 方法的常規協定。
從包含的輸入流中讀取此操做須要的字節。
指定者:
接口 DataInput 中的 readLine
返回:
此輸入流中的下一文本行。
拋出:
IOException - 若是發生 I/O 錯誤。
readUTF
public final String readUTF() throws IOException
參見 DataInput 的 readUTF 方法的常規協定。
從包含的輸入流中讀取此操做須要的字節。
指定者:
接口 DataInput 中的 readUTF
返回:
一個 Unicode 字符串。
拋出:
EOFException - 若是此輸入流在讀取全部字節以前到達末尾。
IOException - 該流已關閉而且包含的輸入流在關閉後不支持讀取操做,或者發生其餘 I/O 錯誤。
UTFDataFormatException - 若是這些字節不表示一個有效的、UTF-8 修改版編碼的字符串。
readUTF
public static final String readUTF(DataInput in) throws IOException
從流 in 中讀取用 UTF-8 修改版格式編碼的 Unicode 字符格式的字符串;而後以 String 形式返回此字符串。UTF-8 修改版表示形式的一些細節與 DataInput 的 readUTF 方法徹底相同。
參數:
in - 數據輸入流。
返回:
一個 Unicode 字符串。
拋出:
EOFException - 若是此輸入流在讀取全部字節以前到達末尾。
IOException - 該流已關閉而且包含的輸入流在關閉後不支持讀取操做,或者發生其餘 I/O 錯誤。
UTFDataFormatException - 若是這些字節不表示一個有效的、UTF-8 修改版編碼的 Unicode 字符串。