我有这段代码:
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);
}
我期待它打印两行。但它显示了一条线。这段代码有什么不对吗?
答案 0 :(得分:2)
因为logger.debug在一行上输出而没有换行符。如果要在两行上打印,则需要使用logger.debug两次。
答案 1 :(得分:2)
我自己试过,上面的代码在使用System.out.println
输出时在我的机器上打印了两行。
正如其他人所指出的,“\ n”不是独立于平台的,而是根据BufferedReader documentation:
任何一个换行都认为一行被终止 ('\ n'),回车符('\ r')或随后的回车符 立即用换行符。
应该没问题。
答案 2 :(得分:1)
你需要逃避这些换行符
String sampleString = String.format("1223,4455,6667%n1223,4455,6667%n")
%n格式说明符引入了依赖于平台的换行符。