簡體   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