我有这个代码:
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两次。