|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
| 上一個類別 下一個類別 | 框架 無框架 | |||||||||
| 摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 | |||||||||
java.lang.Objectjava.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 中的 readb - 讀入資料的緩衝區。off - 資料的初始偏移量。len - 讀取的最大位元組數。
-1。
IOException - 如果發生 I/O 錯誤。read()
public long skip(long n)
throws IOException
n 個資料位元組。出於各種原因,該 skip 方法跳過某些較小的位元組數(可能是 0)後結束。返回跳過的實際位元組數。如果 n 為負,則不跳過任何位元組。
LineNumberInputStream 的 skip 方法創建 byte 陣列,然後重複向其讀入,直到讀夠 n 個位元組或已到達串流的末尾為止。
FilterInputStream 中的 skipn - 要跳過的位元組數。
IOException - 如果發生 I/O 錯誤。FilterInputStream.inpublic 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 中的 availableIOException - 如果發生 I/O 錯誤。FilterInputStream.inpublic void mark(int readlimit)
reset 方法的後續調用會在最後標記的位置重新定位此串流,以使後續讀取重新讀取相同的位元組。
LineNumberInputStream 的 mark 方法會記住 private 變數中的當前行號,然後調用基礎輸入串流的 mark 方法。
FilterInputStream 中的 markreadlimit - 在標記位置失效前可以讀取位元組的最大限制。FilterInputStream.in,
reset()
public void reset()
throws IOException
mark 方法時的位置。
LineNumberInputStream 的 reset 方法會重新將行號設置為調用 mark 方法時的行號,然後調用基礎輸入串流的 reset 方法。
在需要提前從串流中讀取少量資料以查看串流內容的情況下,可以使用串流標記。通常,調用某些常規解析器可以非常方便地完成這項工作。如果串流屬於解析器處理的型別,則會非常順利地完成。如果串流不屬於該型別,則解析器應該在其失敗時拋出異常,如果這是在 readlimit 位元組內發生的,它將允許使用外部程式碼重新設置該串流並嘗試其他解析器。
FilterInputStream 中的 resetIOException - 如果發生 I/O 錯誤。FilterInputStream.in,
mark(int)
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
| 上一個類別 下一個類別 | 框架 無框架 | |||||||||
| 摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 | |||||||||
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。