1

私はこのコードを持っています:

String sampleString = "1223,4455,6667" + "\n" + "1223,4455,6667" + "\n";

BufferedReader reader = new BufferedReader(new StringReader(sampleString));
String line;
while ((line = reader.readLine()) != null) {
   if (line.trim().length() == 0) {
        continue;
   }
   logger.debug("CSVLIne:" + line);
}

私はそれが2行を印刷することを期待していました。しかし、それはすべて1行で表示されます。このコードに何か問題がありますか?

4

3 に答える 3

2

これは、logger.debug が改行なしで 1 行に出力されるためです。2 行で出力したい場合は、logger.debug を 2 回使用する必要があります。

于 2013-07-09T17:33:50.207 に答える
2

自分で試してみたところ、上記のコードは、出力に使用System.out.printlnするとマシンに2行出力されます。

他の人が指摘したように、「\n」はプラットフォームに依存しませんが、BufferedReader のドキュメントによると:

行は、ライン フィード ('\n')、キャリッジ リターン ('\r')、またはキャリッジ リターンの直後のラインフィードのいずれかによって終了すると見なされます。

大丈夫なはずです。

于 2013-07-09T17:47:26.737 に答える
1

これらの改行をエスケープする必要があります

    String sampleString = String.format("1223,4455,6667%n1223,4455,6667%n")

%n 書式指定子は、プラットフォームに依存する改行を導入します。

于 2013-07-09T17:37:46.117 に答える