java - 当 "\r\n"不起作用时如何读取带有换行符的 csv 文件

标签 java replaceall

我是 Java 新手,一直在阅读 Java 文档和其他线程( 12 ),但无法使其工作。

基本上我的 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/

相关文章:

java - azure 外部文件绝对路径

java - 如何从java中的字符串中删除所有 '\'字符

java - 为什么java代码中的String.length不计算空格?

java - 正则表达式替换重复的字符串模式

java - 在动态 Web 应用程序项目中,Eclipse 调试器未命中断点

java - Checkstyle 在最终变量的命名约定上与普通 Java 不同?

java - 在 jooq 中使用数组参数调用 postgres 函数

java - 将异步计算包装成同步(阻塞)计算

java - 如何修复以下正则表达式?

javascript - 无法用包含 [ 和 ] 的字符串替换我的字符串