開發人員常常會隨手寫一些類來讀入一個簡單的配置文件
或者用BufferedReader一行一行地讀入特定格式的數據
這些隨手寫成的解析器往往會提供基本的出錯報告
但有時候它們會很難記錄下出錯的行號
幸運的是
Java的java
io
LineNumberReader類提供了行號的記錄而不需做任何額外的工作
java
io
LineNumberReader類是java
io
BufferedReader類的擴展
它封裝了處理行號的額外能力
假設我們有一個簡單的解析器
它的規則是
每一行都必須以
#
開頭
我們來示范一下LineNumberReader的用法
public void parseFile(Reader reader) throws IOException {
LineNumberReader in = new LineNumberReader(reader);
String line =
;
while( (line = in
readLine( )) != null ) {
if(line
startsWith(
#
)) {
// 處理這一行
} else {
throw new IOException(
第
+ in
getLineNumber( ) +
行丟了#號
);
}
}
in
flush( );
in
close( );
} 行號
的意味著我們還沒開始讀入
如果在一個程序中我們每次讀入一行
並輸出該行和它的行號
行號將從
開始
LineNumberReader中有一個setLineNumber(int)方法
但它僅僅是個裝飾物
例如把行號設成
並不會轉到第
行
它只是簡單地把當前行的行號設成
下一行的行號就是
了
From:http://tw.wingwit.com/Article/program/Java/Javascript/201311/25386.html