我有一个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改为&#34; lol&#34;作为一个示例测试,看它是否有效,但我收到以下错误:
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
答案 0 :(得分:0)
您传递给row和col的第一个值是1和1.但是,这些值需要从0开始。
答案 1 :(得分:0)
您正在使用;
作为解析文件的分隔符。您的文件使用,
。此外,使用空格作为引用字母并没有多大意义。您应该使用"
,因为这也是您的文件使用的内容。