JavaTM 2 Platform
Standard Ed. 6

java.io
類別 LineNumberInputStream

java.lang.Object
  繼承者 java.io.InputStream
      繼承者 java.io.FilterInputStream
          繼承者 java.io.LineNumberInputStream
所有已實作的介面:
Closeable

已過時。 此類別錯誤假定位元組能充分表示字元。從 JDK 1.1 開始,對字元串流操作的首選方法是通過新字元串流類別(其中包括計算行號的類別)進行操作。

@Deprecated
public class LineNumberInputStream
extends FilterInputStream

此類別是一個輸入串流過濾器,它提供追蹤當前行號的附加功能。

行是以回車(Enter)符 ('\r')、換行符 ('\n') 或回車(Enter)符後面緊跟換行符結尾的位元組序列。在所有這三種情況下,都以單個換行符形式返回行終止字元。

行號以 0 開頭,並在 read 返回換行符時遞增 1

從以下版本開始:
JDK1.0
另請參見:
LineNumberReader

欄位摘要
 
從類別 java.io.FilterInputStream 繼承的欄位
in
 
建構子摘要
LineNumberInputStream(InputStream in)
          已過時。 建構從指定輸入串流讀取其輸入的新行號輸入串流。
 
方法摘要
 int available()
          已過時。 無阻塞情況下返回可以從此輸入串流中讀取的位元組數。
 int getLineNumber()
          已過時。 返回當前行號。
 void mark(int readlimit)
          已過時。 在此輸入串流中標記當前的位置。
 int read()
          已過時。 從此輸入串流讀取下一個資料位元組。
 int read(byte[] b, int off, int len)
          已過時。 將最多 len 個資料位元組從此輸入串流讀入 byte 陣列。
 void reset()
          已過時。 將此串流重新定位到對此輸入串流最後調用 mark 方法時的位置。
 void setLineNumber(int lineNumber)
          已過時。 將行號設置為指定參數。
 long skip(long n)
          已過時。 跳過和放棄此輸入串流中的 n 個資料位元組。
 
從類別 java.io.FilterInputStream 繼承的方法
close, markSupported, read
 
從類別 java.lang.Object 繼承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

建構子詳細資訊

LineNumberInputStream

public LineNumberInputStream(InputStream in)
已過時。 
建構從指定輸入串流讀取其輸入的新行號輸入串流。

參數:
in - 基礎輸入串流。
方法詳細資訊

read

public int read()
         throws IOException
已過時。 
從此輸入串流讀取下一個資料位元組。返回 0255 範圍內的 int 位元組值。如果因串流的末尾已到達而沒有可用的位元組,則返回值 -1。在輸入資料可用、檢測到串流的末尾或者拋出異常前,此方法一直阻塞。

LineNumberInputStreamread 方法調用基礎輸入串流的 read 方法。它檢查輸入中的回車(Enter)和換行符,並相應地修改當前行號。回車(Enter)符或後跟換行符的回車(Enter)兩者都可轉換為單個換行符。

覆寫:
類別 FilterInputStream 中的 read
返回:
下一個資料位元組,如果已到達此串流的末尾,則返回 -1
拋出:
IOException - 如果發生 I/O 錯誤。
另請參見:
FilterInputStream.in, getLineNumber()

read

public int read(byte[] b,
                int off,
                int len)
         throws IOException
已過時。 
將最多 len 個資料位元組從此輸入串流讀入 byte 陣列。在某個輸入可用前,此方法一直阻塞。

LineNumberInputStreamread 方法重複調用 0 參數的 read 方法來填充 byte 陣列。

覆寫:
類別 FilterInputStream 中的 read
參數:
b - 讀入資料的緩衝區。
off - 資料的初始偏移量。
len - 讀取的最大位元組數。
返回:
讀入緩衝區的總位元組數,如果由於已到達此串流的末尾而不再有資料,則返回 -1
拋出:
IOException - 如果發生 I/O 錯誤。
另請參見:
read()

skip

public long skip(long n)
          throws IOException
已過時。 
跳過和放棄此輸入串流中的 n 個資料位元組。出於各種原因,該 skip 方法跳過某些較小的位元組數(可能是 0)後結束。返回跳過的實際位元組數。如果 n 為負,則不跳過任何位元組。

LineNumberInputStreamskip 方法創建 byte 陣列,然後重複向其讀入,直到讀夠 n 個位元組或已到達串流的末尾為止。

覆寫:
類別 FilterInputStream 中的 skip
參數:
n - 要跳過的位元組數。
返回:
跳過的實際位元組數。
拋出:
IOException - 如果發生 I/O 錯誤。
另請參見:
FilterInputStream.in

setLineNumber

public void setLineNumber(int lineNumber)
已過時。 
將行號設置為指定參數。

參數:
lineNumber - 新行號。
另請參見:
getLineNumber()

getLineNumber

public int getLineNumber()
已過時。 
返回當前行號。

返回:
當前行號。
另請參見:
setLineNumber(int)

available

public int available()
              throws IOException
已過時。 
無阻塞情況下返回可以從此輸入串流中讀取的位元組數。

注意,如果基礎輸入串流能夠在無阻塞情況下提供 k 個輸入字元,則 LineNumberInputStream 可以保證在無阻塞情況下只提供 k/2 個字元,因為基礎輸入串流中的 k 個字元可能由 k/2 個 '\r''\n' 對組成,這些對只能轉換為 k/2 '\n' 個字元。

覆寫:
類別 FilterInputStream 中的 available
返回:
無阻塞情況下可以從此輸入串流讀取的位元組數。
拋出:
IOException - 如果發生 I/O 錯誤。
另請參見:
FilterInputStream.in

mark

public void mark(int readlimit)
已過時。 
在此輸入串流中標記當前的位置。對 reset 方法的後續調用會在最後標記的位置重新定位此串流,以使後續讀取重新讀取相同的位元組。

LineNumberInputStreammark 方法會記住 private 變數中的當前行號,然後調用基礎輸入串流的 mark 方法。

覆寫:
類別 FilterInputStream 中的 mark
參數:
readlimit - 在標記位置失效前可以讀取位元組的最大限制。
另請參見:
FilterInputStream.in, reset()

reset

public void reset()
           throws IOException
已過時。 
將此串流重新定位到對此輸入串流最後調用 mark 方法時的位置。

LineNumberInputStreamreset 方法會重新將行號設置為調用 mark 方法時的行號,然後調用基礎輸入串流的 reset 方法。

在需要提前從串流中讀取少量資料以查看串流內容的情況下,可以使用串流標記。通常,調用某些常規解析器可以非常方便地完成這項工作。如果串流屬於解析器處理的型別,則會非常順利地完成。如果串流不屬於該型別,則解析器應該在其失敗時拋出異常,如果這是在 readlimit 位元組內發生的,它將允許使用外部程式碼重新設置該串流並嘗試其他解析器。

覆寫:
類別 FilterInputStream 中的 reset
拋出:
IOException - 如果發生 I/O 錯誤。
另請參見:
FilterInputStream.in, mark(int)

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only