我正在阅读带有opencsv
图书馆的几张csv表。我正在hugeList = reader.readAll();
中存储“读取”csv文件现在我只想在另一张表中以列方式写出这个巨大的csv表的第5个值。
我站在那一刻:
//reading all entries in a huge list
//-740 as it would take to much time to run it in "dev mode"
for (int j = 0; j < (fileList.size() - 740); j++) {
String csvFile = "C:\\Users\\" + fileList.get(j);
reader = new CSVReader(new FileReader(csvFile), ';');
hugeList = reader.readAll();
List<String[]> data = new ArrayList<String[]>();
// for(int m = 0; m < hugeList.size(); m++) {
// String[] value = hugeList.get(m);
data.add(hugeList.get(5));
// }
writer.writeAll(data);
}
但是我不知道如何将它们写入另一列并且只取第5个值?
我非常感谢你的回答!
更新1
目标:我在hugeList中保存了一张表中的所有值。现在我想 只将第5列写入新表。
问题:此目标背后的逻辑。
更新2
这就是我现在的代码:
//reading all entries in a huge list
for (int j = 0; j < (fileList.size() - 740); j++) {
String csvFile = "C:\\" + fileList.get(j);
reader = new CSVReader(new FileReader(csvFile), ';');
hugeList = reader.readAll();
List<String[]> data = new ArrayList<String[]>();
List<String> tmp= new ArrayList<String>();
for(int m = 0; m < hugeList.size(); m++) {
String[] values = hugeList.get(m);
tmp.add(values[0]);
}
data.add(tmp.toArray(new String[0]));
writer.writeAll(data);
}
正如您所看到的,我仍然可以垂直获取数据......为什么?
答案 0 :(得分:2)
我认为你已经走在正确的道路上了。
你有两种可能性。
1. data.add(hugeList.get(4));
2. for(int m = 0; m < hugeList.size(); m++) {
if(m==4){
String[] values = hugeList.get(m);
data.add(values);
break;
}
}
<强>更新强>
目标:我已经在hugeList中保存了一张表中的所有值。现在我想只将第5列写入新表。问题:这个目标背后的逻辑。
行方式结果的方法
List<String[]> data = new ArrayList<String[]>();
List<String> tmp= new ArrayList<String>();
for(int m = 0; m < hugeList.size(); m++) {
String[] values = hugeList.get(m);
tmp.add(values[4]);
}
data.add(tmp.toArray(new String[0]));
}
我在列中的结果的方法
for (int j = 0; j < fileList.size(); j++) {
String csvFile = readPath + fileList.get(j);
System.out.println("Read: " + csvFile);
reader = new CSVReader(new FileReader(csvFile), ';');
hugeList = reader.readAll();
String[] data = new String[1];
for (int m = 0; m < hugeList.size(); m++) {
String[] values = hugeList.get(m);
data[0] = values[0];
writer.writeNext(data);
}
}