0

これを行う方法についてのヘルプが見つかりません: Filreader の while で .substring を使用できません。最初の行を読み取った後に例外がスローされます。

String line = "";
BufferedReader in = new BufferedReader( new FileReader(f) );
LineNumberReader lnr = new LineNumberReader(in);
while ((line = lnr.readLine()) != null) {
    System.out.println(lnr.getLineNumber() + " : " + line.substring(1, 7) +"!");
}
in.close();
lnr.close();
4

1 に答える 1

2

あなたの問題に対する答えがすでに見つかっていることを嬉しく思います。さらに、部分文字列を呼び出すときに範囲チェックを追加することをお勧めします (少なくとも可変長の行が予想される場合)。

if (line.length() > 7) {
  System.out.println(lnr.getLineNumber() + " : " + line.substring(1, 7) +"!");
}
else {
  System.err.println("Unexpected line, minimum expected length=7 chars");
}
于 2011-07-29T03:33:17.480 に答える