我是 Java 新手,一直在阅读 Java 文档和其他线程( 1 、 2 ),但无法使其工作。
基本上我的 csv 文件几乎没有这样的记录
How are
you
所以我希望我的代码将其作为一行读取
How are you
我的代码如下所示:
BufferedReader bReader = new BufferedReader(new InputStreamReader(new FileInputStream(csv),"utf-8"));
while ((line = bReader.readLine()) != null) {
String lines = line.replaceAll("\r\n", " ");
System.out.println(lines);
手动地,当我在you
处按退格键时,它会以are
返回,并且我按了空格键。然后就没事了。但我有一个包含 29k 条记录的大 csv 文件。我一定有办法解决这个问题。你能指点我的方向吗?谢谢。
[编辑]
这就是它的样子。
Fav: Beaver tails.
Least fav: HST not included in prices.
编辑2:
-3166,1054,CF ,5992841,15:37.5,en,13007,12,12,Comments: Favorite and/or least favorite things,0,"Cafe Fun
-Least favourite - cabs"
“Cafe Fun 最不喜欢的 - 出租车”应该在同一条线上。
最佳答案
readLine()
将返回文件中的下一行,不带行分隔符。因此,在循环的第一次迭代中,lines
是 “How are”
,在第二次迭代中,lines
是 “you”
。它们都不包含 "\r\n"
,因此您对 replaceAll(...)
的调用仅返回相同的字符串。
然后,System.out.println(...)
打印文本并附加行分隔符,这样您就可以回到开始的地方。 p>
您可以将所有行收集到一个列表中:
List<String> lines = Files.readAllLines(csv);
然后使用String.join(...)
连接它们:
String allLines = String.join(" ", lines);
关于java - 当 "\r\n"不起作用时如何读取带有换行符的 csv 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48388602/