我有一个csv文件,其中包含5个标题字段,如field1,field2,field3,field4,field5。 该文件包含不同用户的此标头的数据。 有些列可能包含空值,因为只有三列是强制性的。
我想通过指定其标题来读取列,例如,如果我指定了field1和field3,那么只读取这些列的值。
我尝试使用opencsv来执行此操作并阅读opencsv的所有功能。 我也试过CSVReader。
这是我的代码:
public void startScanFile(){
String mydemofile=pathtofile;
BufferedReader br =null;
try {
System.out.println("\nEnter the column number that contains ip : ");
br = new BufferedReader(new InputStreamReader(System.in));
ipcolumn = Integer.parseInt(br.readLine());
System.out.println("\nEnter the column number that contains username : ");
br = new BufferedReader(new InputStreamReader(System.in));
usercolumn = Integer.parseInt(br.readLine());
System.out.println("\n Enter the column number that contains password");
br = new BufferedReader(new InputStreamReader(System.in));
passcolumn = Integer.parseInt(br.readLine());
}catch(Exception e){
}
try {
CSVReader csvReader = new CSVReader(new FileReader(mydemofile));
String[] row;
while ((row = csvReader.readNext())!=null){
System.out.println("Col1 is is : " + row[1]);
System.out.println("Col3 is : " + row[3]);
System.out.println("Col4 is : " + row[4]);
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
如何只读取指定标题的值?
答案 0 :(得分:4)
答案 1 :(得分:2)
如果您使用csvreader
,则可以使用此
line.get("field3");
http://javacsv.sourceforge.net/com/csvreader/CsvReader.html#get(java.lang.String)
答案 2 :(得分:1)
我可以推荐以下csv库。很好。检查下面的url,其中包含如何使用标头获取csv数据的示例,您还可以验证数据。
http://supercsv.sourceforge.net/examples_reading.html