我正在编写一个读取CSV文件的程序,我修改了一些列。修改后我必须将其写入一个带有修改的新CSV文件。
我一直在阅读和修改,但当我把它写到一个新文件时,我只是得到一行。我来到这里。
帮我解决这个问题?
我正在使用openCSV,语言是Java。
我的代码:
CSVReader reader;
try
{
File file=new File("/home/srinivas/Desktop/saicharan/Cardsmod.csv");
if(file.createNewFile()){ }
reader = new CSVReader(new FileReader(filename));
String filewrite="/home/srinivas/Desktop/saicharan/Cardsmod.csv";
CSVWriter writer=new CSVWriter(new FileWriter(filewrite));
String[] row;
while((row = reader.readNext()) != null)
{
String str=new String();
String str1=new String();
for(int i=0;i<row.length;i++)
{
str1=str1+","+row[i];
if(row[i].equals("Card Text Listen"))
{
String [] nextLine = reader.readNext();
String [] nextLine1=reader.readNext();
str=str+nextLine[i]+nextLine1[i];
c2.met(str);
}
if(i==11)
{
String[] rowwrite=str1.split(",");
writer.writeNext(rowwrite);
}
}
}
writer.close();
}
谢谢。
答案 0 :(得分:0)
我看到你读取和写入同一个文件,所以你应该将所有行存储到列表中,然后在读者完成后初始化编写器 EXP:
String[] header;
String[] row;
int index = 0;
// processing the header;
header = reader.readNext();
for (int i = 0; i < header.length; i++) {
if (header[i].equals("Card Text Listen")) {
index = i;
break;
}
}
// processing data
while ((row = reader.readNext()) != null) {
for (int i = 0; i < row.length; i++) {
if (index == i) {
row[i] = "new value";
break;
}
}
writer.writeNext(row);
}