IO-DataInputStream

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 字符串。

相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息