繁体   English   中英

在 JAVA 中的 CSV 文件中将两行合并为一行

[英]Merge two rows into one in a CSV file in JAVA

我有一个具有该格式的 CSV:

FASS339XM;4567;false;89590343<br>
940000299;4183;2019-09-02 14:12:18.461819;HW;0986481366<br>
FADS339XM;4446;true;89594343<br>
940000300;4183;2019-09-02 14:12:21.243148;HW;0986481366<br>
FASS339XM;4567;true;89590343<br>
940000301;4183;2019-09-03 09:58:17.173558;HW;0009482803<br>
...

我需要像这样将两个不同行的块合并为一个:

FASS339XM;4567;false;89590343;940000299;4183;2019-09-02 14:12:18.461819;HW;0986481366
FADS339XM;4446;true;89594343;940000300;4183;2019-09-02 14:12:21.243148;HW;0986481366
FASS339XM;4567;true;89590343;940000301;4183;2019-09-03 09:58:17.173558;HW;0009482803

我不知道该怎么做。 我尝试了几种方法,但我做不到。 我在 JAVA 和 Spring 批次中开发。

有任何想法吗?

你可以这样做:

try (PrintWriter output = new PrintWriter("path/to/output.csv");) {
    List<String> lines = Files.readAllLines(Paths.get("path/to/your.csv"));
    // assuming your csv has an even number of lines
    for (int i = 0; i < lines.size(); i++) {
        output.println(lines.get(i) + ";" + lines.get(++i));
    }
}

只需使用快速而肮脏的 sed 命令

sed -z -e "s/<br>\n\([^F]\)/;\1/g" -e "s/<br>//g" -i <file>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM