带有StringReader的换行符-n被忽略



我有这个代码:

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

我原以为它会印两行字。但这一切都显示在一条线上。这个代码有什么错误吗?

我自己也试过了,当使用System.out.println进行输出时,上面的代码在我的机器上打印了两行。

正如其他人所指出的,"\n"不是独立于平台的,但根据BufferedReader文档:

线路被认为是由任何一个线路馈线终止的('\n')、回车符('\r')或后面跟着回车符立即通过换行。

应该没问题。

您需要转义那些换行符

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

%n格式说明符引入了依赖于平台的换行符。

这是因为logger.debug在一行上输出而没有换行符。如果你想在两行上打印,你需要使用logger.debug两次。

相关内容

  • 没有找到相关文章

最新更新