我一直在研究這段代碼很長一段時間,只是想給予簡單的頭如果我路由下來的死衚衕。 im現在的目的是從不同的.csv文件中編制相同的單元格,並將一行復制到另一個csv文件中。真正的問題是可以寫在specfic行說,例如,如果2行在第50行匹配,我想寫回到第50行。我假設我可能會提取所有內容到一個hashmap,寫入然後寫回.csv文件?有沒有更簡單的方法?使用超級csv回寫Java的csv
例如我有一個Csv有人的詳細信息,另一個有實際人住的地方的財產詳細信息,我希望將該人的詳細信息複製到人csv,並將其與正確的人詳細信息匹配。希望這是有道理
public class Old {
public static void main(String [] args) throws IOException
{
List<String[]> cols;
List<String[]> cols1;
int row =0;
int count= 0;
boolean b;
CsvMapReader Reader = new CsvMapReader(new FileReader("file1.csv"), CsvPreference.EXCEL_PREFERENCE);
CsvMapReader Reader2 = new CsvMapReader(new FileReader("file2.csv"), CsvPreference.EXCEL_PREFERENCE);
try {
cols = readFile("file1.csv");
cols1 = readFile("fiel2.csv");
String [] headers = Reader.getCSVHeader(true);
headers = header(cols1,headers
} catch (IOException e) {
e.printStackTrace();
return;
}
for (int j =1; j<cols.size();j++) //1
{
for (int i=1;i<cols1.size();i++){
if (cols.get(j)[0].equals(cols1.get(i)[0]))
{
}
}
}
}
private static List<String[]> readFile(String fileName) throws IOException
{
List<String[]> values = new ArrayList<String[]>();
Scanner s = new Scanner(new File(fileName));
while (s.hasNextLine()) {
String line = s.nextLine();
values.add(line.split(","));
}
return values;
}
public static void csvWriter (String fileName, String [] nameMapping) throws FileNotFoundException
{
ICsvListWriter writer = new CsvListWriter(new PrintWriter(fileName),CsvPreference.STANDARD_PREFERENCE);
try {
writer.writeHeader(nameMapping);
} catch (IOException e) {
e.printStackTrace();
}
}
public static String[] header(List<String[]> cols1, String[] headers){
List<String> list = new ArrayList<String>();
String [] add;
int count= 0;
for (int i=0;i<headers.length;i++){
list.add(headers[i]);
}
boolean c;
c= true;
while(c) {
add = cols1.get(0);
list.add(add[count]);
if (cols1.get(0)[count].equals(null))// this line is never read errpr
{
c=false;
break;
} else
count ++;
}
String[] array = new String[list.size()];
list.toArray(array);
return array;
}
我不知道我理解你想達到什麼,你能舉個例子? – Thomas 2012-08-09 14:38:07
例如,我有一個Csv有人的詳細信息,另一個有實際人住的地方的詳細信息,我希望將該人的詳細信息複製到人csv,並將其與正確的人物詳細信息相匹配。希望這是有道理的@Thomas – 2012-08-10 07:14:37
FYI [超級CSV 2.0.0-beta-1](http://supercsv.sourceforge.net/release_notes.html)現在不在了。它包含許多錯誤修復和新功能(包括Maven支持和用於映射嵌套屬性和數組/集合的新Dozer擴展)。 – 2012-09-18 05:41:16