java - 如何在Java中循环并将相同的内容写入CSV文件

标签 java csv

我有一个 CSV 文件,我读取该文件并将其内容存储为字符串数组。
然后我想将该输入写回一个单独的 CSV 文件,但我想循环遍历并将内容写回该 CSV 文件 5 次。

以下代码在打印出代码时有效,但我假设它每次写入 CSV 文件时都会覆盖该文件,因为它只包含 CSV 文件中循环的 1 次迭代?

@SuppressWarnings("resource")
public static void main(String[] args) throws Exception {

    String[] nextLine = null;

    for (int i = 0; i<=5; i++){
        CSVReader reader = new CSVReader(new FileReader("D:\\input.csv"), ',' , '"' , 1);
        CSVWriter writer = new CSVWriter(new FileWriter("D:\\output.csv"));
        while ((nextLine = reader.readNext()) != null) {
            //Write the record to Result file
            writer.writeNext(nextLine);                 
            System.out.println(Arrays.toString(nextLine));

        }
        i++;
        writer.flush();
        writer.close();
    }

编辑:我需要的格式是 [a,b,c,a,b,c,a,b,c...] 而不是 [a,a,a,b,b,b,c, c,c...] 假设我的输入文件是 [item1 狗 猫 项目2 狗 猫 项目3 狗 cat] 那么我希望它按顺序打印 5 次,而不是像 [item 1, item 1, item 1, item 1, item 1,dog,dog...]

最佳答案

1) 你的循环已经倒退了。你想读一行,然后写 5 次。

2) 你的 for 循环实际上运行了 6 次 i <= 5 .

3) 你不需要i++再次在 for 循环中

<小时/>

尝试以下操作

public static void main(String[] args) throws Exception {

    String[] nextLine = null;

    try (
        CSVReader reader = new CSVReader(new FileReader("D:\\input.csv"), ',' , '"' , 1);
        CSVWriter writer = new CSVWriter(new FileWriter("D:\\output.csv"))
    ) {
        while ((nextLine = reader.readNext()) != null) {
            // Write 5 records to Result file
            for (int i = 0; i < 5; i++){
                writer.writeNext(nextLine);                 
                System.out.println(Arrays.toString(nextLine));

            }
            writer.flush();
        }
    }

(尝试使用资源将关闭文件本身)

关于java - 如何在Java中循环并将相同的内容写入CSV文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42702742/

相关文章:

java - 如何将字符串中存储的数据转换为字符串数组

java - 在 linux 机器上使用 java 调用 Excel 宏

python - 读取一个巨大的 .csv 文件

ruby - 删除并合并 CSV 文件中的重复记录

javascript - 解析 Highcharts 中多个类别的 CSV

java - 从 Android 中的 MP4 文件中提取特定秒的缩略图

java - 使用泛型的类调用了错误版本的方法(父类(super class)而不是子类)?

java - java中的Pentaho Kettle程序按列合并多个csv文件

c# - Bloomberg API - 获取政府债券列表

python - 忽略后续逗号的最佳方法