2011-07-28 18 views
0

これを行う方法に関するヘルプが見つかりません: Filreaderのwhileで.substringを使用することはできません。最初の行を読み取った後に例外がスローされます。filreader内のjavaサブ文字列

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(); 
+0

実装しようとしていることの説明を追加してください。なぜあなたは部分文字列を使用していますか?希望のプログラム出力は何ですか? –

+0

ファイルごとに行を読み込みたい場合、部分文字列が==「何でも」あれば、特定のアクションが続きます。しかし、部分文字列はFilereaderを止めてしまったようだが、全体の問題だよ〜 – Frotty

+0

@Mauricioが言ったことの上に、どんな例外が投げられるのだろうか? – ty1824

答えて

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"); 
} 
を呼び出すときに、範囲のチェックを追加することを提案したいと思います
関連する問題