|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object java.io.InputStream java.io.FilterInputStream java.io.LineNumberInputStream
@Deprecated public class LineNumberInputStream
此類別是一個輸入串流過濾器,它提供追蹤當前行號的附加功能。
行是以回車(Enter)符 ('\r'
)、換行符 ('\n'
) 或回車(Enter)符後面緊跟換行符結尾的位元組序列。在所有這三種情況下,都以單個換行符形式返回行終止字元。
行號以 0
開頭,並在 read
返回換行符時遞增 1
。
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 |
建構子詳細資訊 |
---|
public LineNumberInputStream(InputStream in)
in
- 基礎輸入串流。方法詳細資訊 |
---|
public int read() throws IOException
0
到 255
範圍內的 int
位元組值。如果因串流的末尾已到達而沒有可用的位元組,則返回值 -1
。在輸入資料可用、檢測到串流的末尾或者拋出異常前,此方法一直阻塞。
LineNumberInputStream
的 read
方法調用基礎輸入串流的 read
方法。它檢查輸入中的回車(Enter)和換行符,並相應地修改當前行號。回車(Enter)符或後跟換行符的回車(Enter)兩者都可轉換為單個換行符。
FilterInputStream
中的 read
-1
。
IOException
- 如果發生 I/O 錯誤。FilterInputStream.in
,
getLineNumber()
public int read(byte[] b, int off, int len) throws IOException
len
個資料位元組從此輸入串流讀入 byte 陣列。在某個輸入可用前,此方法一直阻塞。
LineNumberInputStream
的 read
方法重複調用 0 參數的 read
方法來填充 byte 陣列。
FilterInputStream
中的 read
b
- 讀入資料的緩衝區。off
- 資料的初始偏移量。len
- 讀取的最大位元組數。
-1
。
IOException
- 如果發生 I/O 錯誤。read()
public long skip(long n) throws IOException
n
個資料位元組。出於各種原因,該 skip
方法跳過某些較小的位元組數(可能是 0
)後結束。返回跳過的實際位元組數。如果 n
為負,則不跳過任何位元組。
LineNumberInputStream
的 skip
方法創建 byte 陣列,然後重複向其讀入,直到讀夠 n
個位元組或已到達串流的末尾為止。
FilterInputStream
中的 skip
n
- 要跳過的位元組數。
IOException
- 如果發生 I/O 錯誤。FilterInputStream.in
public void setLineNumber(int lineNumber)
lineNumber
- 新行號。getLineNumber()
public int getLineNumber()
setLineNumber(int)
public int available() throws IOException
注意,如果基礎輸入串流能夠在無阻塞情況下提供 k 個輸入字元,則 LineNumberInputStream
可以保證在無阻塞情況下只提供 k/2 個字元,因為基礎輸入串流中的 k 個字元可能由 k/2 個 '\r'
和 '\n'
對組成,這些對只能轉換為 k/2 '\n'
個字元。
FilterInputStream
中的 available
IOException
- 如果發生 I/O 錯誤。FilterInputStream.in
public void mark(int readlimit)
reset
方法的後續調用會在最後標記的位置重新定位此串流,以使後續讀取重新讀取相同的位元組。
LineNumberInputStream
的 mark
方法會記住 private 變數中的當前行號,然後調用基礎輸入串流的 mark
方法。
FilterInputStream
中的 mark
readlimit
- 在標記位置失效前可以讀取位元組的最大限制。FilterInputStream.in
,
reset()
public void reset() throws IOException
mark
方法時的位置。
LineNumberInputStream
的 reset
方法會重新將行號設置為調用 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。