如果我有檔案。里面的內容是這樣的:
ID,Name,Gender,Age,Enabled
1,Kevin,M,1,true
2,James,M,2,true
3,Jane,F,3,true
4,Jenny,F,4,true
現在我想提取列:ID、名稱、性別并將它們輸出到一個新檔案中,如下所示:
ID,Name,Age
1,Kevin,1
2,James,2
3,Jane,3
4,Jenny,4
我想根據標題名稱而不是索引號提取列。
我想使用 OpenCSV。
如何實作?
uj5u.com熱心網友回復:
CSVReader 中沒有使用列名讀取值的內置方法。但是您可以通過創建另一種方法來獲得正確的列位置來解決如下問題。
private int getPositionUsingName(String[] allColumnNames, String columnName) {
return Arrays.asList(allColumnNames).indexOf(columnName);
}
所以你的方法會是這樣的:
CSVReader csvReader = new CSVReader(new FileReader("inputFile.csv"));
String [] allColumnNames;
String [] nextLine;
int idPosition;
int namePosition;
int agePosition;
allColumnNames = csvReader.readNext();
idPosition = getPositionUsingName(allColumnNames, "ID");
namePosition = getPositionUsingName(allColumnNames, "Name");
agePosition = getPositionUsingName(allColumnNames, "Age");
while ((nextLine = csvReader.readNext()) != null) {
System.out.println(nextLine[idPosition] " " nextLine[namePosition] " " nextLine[agePosition]);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/349644.html
