• 締切済み

テキストファイルから空白行をよむ

空白行を含んだテキストファイルをよみこんで、それをそのまま表示するプログラムをつくりたいのですが、BufferedReaderのreadLineを使うとnullが返ってきてしまいます。どうすれば空白行ということがわかるのですか。

みんなの回答

  • ssr-y6
  • ベストアンサー率71% (5/7)
回答No.3

 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()); }; }; }

回答No.2

私もあまりJavaは触っていませんが、EOFExceptionが出なければ空 行という判断をするんじゃないのでしょうか?

noname#9414
noname#9414
回答No.1

常に次の行を見て、EOFかどうかチェックしては どうでしょうか。 #あまりJavaは触っていないので・・・ ではでは☆

関連するQ&A