国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

LineNumberReader提供更好的出錯消息

2019-11-18 14:06:33
字體:
供稿:網(wǎng)友

  開發(fā)人員經(jīng)常會隨手寫一些類來讀入一個簡單的配置文件,或者用BufferedReader一行一行地讀入特定格式的數(shù)據(jù)。這些隨手寫成的解析器往往會提供基本的出錯報告,但有時候它們會很難記錄下出錯的行號。幸運的是,java的java.io.LineNumberReader類提供了行號的記錄而不需做任何額外的工作。
java.io.LineNumberReader類是java.io.BufferedReader類的擴(kuò)展,它封裝了處理行號的額外能力。假設(shè)我們有一個簡單的解析器,它的規(guī)則是:每一行都必須以“#”開頭。我們來示范一下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( );
}

行號0的意味著我們還沒開始讀入。假如在一個程序中我們每次讀入一行,并輸出該行和它的行號,行號將從1開始。

LineNumberReader中有一個setLineNumber(int)方法,但它僅僅是個裝飾物。例如把行號設(shè)成42并不會轉(zhuǎn)到第42行;它只是簡單地把當(dāng)前行的行號設(shè)成42。下一行的行號就是43了。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 罗江县| 巴彦淖尔市| 雅安市| 横峰县| 石景山区| 油尖旺区| 珲春市| 成都市| 长治市| 苍梧县| 元阳县| 岢岚县| 含山县| 仙居县| 波密县| 溧阳市| 财经| 德钦县| 河西区| 黄大仙区| 宜阳县| 宁夏| 天柱县| 华安县| 古丈县| 绥阳县| 伽师县| 五原县| 栖霞市| 建始县| 通河县| 通州市| 临夏市| 汉寿县| 霍林郭勒市| 桂平市| 弋阳县| 抚顺市| 湖北省| 临桂县| 宁海县|