アプリ版:「スタンプのみでお礼する」機能のリリースについて

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

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

};

}
    • good
    • 0

私もあまりJavaは触っていませんが、EOFExceptionが出なければ空


行という判断をするんじゃないのでしょうか?
    • good
    • 1

常に次の行を見て、EOFかどうかチェックしては


どうでしょうか。
#あまりJavaは触っていないので・・・

ではでは☆
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!