- 締切済み
テキストファイルから空白行をよむ
空白行を含んだテキストファイルをよみこんで、それをそのまま表示するプログラムをつくりたいのですが、BufferedReaderのreadLineを使うとnullが返ってきてしまいます。どうすれば空白行ということがわかるのですか。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- ssr-y6
- ベストアンサー率71% (5/7)
readLineは、空行ならば空の文字列を、テキストの終わりならばnullを返しますので、通常は[1]の方法で問題はありません。 しかし、以前に異なるプラットフォームの改行コードが混在するテキストを処理する時に、それと同じ体験をしたことがあります。 SMTPやHTTPのヘッダとボディの区切りは、プラットフォームに関係なく0x0D+0x0Aを使うことになっているので、 この場合にもそのような現象が起きるのではないでしょうか。 そして、そのときは[2]の方法で対処できたと思います。 -----[1]----- import java.io.*; public class textout1 { public static void main(String args[]) { String Str1; try { BufferedReader BR = new BufferedReader(new FileReader(args[0])); while ((Str1 = BR.readLine()) != null) System.out.println(Str1); BR.close(); } catch(Exception ex) { System.out.println(ex.toString()); }; }; } -----[2]----- import java.io.*; public class textout2 { public static void main(String args[]) { String Str1; try { BufferedReader BR = new BufferedReader(new FileReader(args[0])); while(true) { if ((Str1 = BR.readLine()) != null) System.out.println(Str1); else if (!BR.ready()) break; }; BR.close(); } catch(Exception ex) { System.out.println(ex.toString()); }; }; }
- punchan_jp
- ベストアンサー率55% (155/280)
私もあまりJavaは触っていませんが、EOFExceptionが出なければ空 行という判断をするんじゃないのでしょうか?
常に次の行を見て、EOFかどうかチェックしては どうでしょうか。 #あまりJavaは触っていないので・・・ ではでは☆