Java OpenCSV如何从csv文件编辑特定的单元格



我有一个CSV文件,看起来像这样:http://gyazo.com/5dcfb8eca4e133cbeac87f514099e320.png

我需要弄清楚如何读取特定的单元格并在文件中更新它们。

这是我使用的代码:

import java.util.List;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import com.opencsv.*;
public class ReadCSV {
    private static final char SEPARATOR = ';';
    public static void updateCSV(String input, String output, String  replace, int row, int col) throws IOException {   
          CSVReader reader = new CSVReader(new FileReader(input),SEPARATOR);
            List<String[]> csvBody = reader.readAll();
            csvBody.get(row)[col]=replace;
            reader.close();
            CSVWriter writer = new CSVWriter(new FileWriter(output),SEPARATOR,' ');
            writer.writeAll(csvBody);
            writer.flush();
            writer.close();
    }

    public static void main(String[] args) throws IOException {
        String source = "townhall_levels.csv";
        String destiantion="output.csv";
        ReadCSV.updateCSV(source, destiantion, "lol", 1, 1);
    }
}

在此代码中,我只是试图将A1更改为"lol"作为一个示例测试,看看它是否有效,但我得到以下错误:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
    at ReadCSV.updateCSV(ReadCSV.java:16)
    at ReadCSV.main(ReadCSV.java:30)

我应该如何实现我的目标并修复错误?

CSV文件:www.forumalliance.net/townhall_levels.csv

使用;作为分隔符来解析文件。您的文件使用,。此外,使用空格作为引用字符也没有多大意义。你应该使用"代替,因为这也是你的文件使用。

传递给row和col的第一个值分别是1和1。但是,这些需要从0开始

相关内容

  • 没有找到相关文章

最新更新