每次读取一行CSV文件,然后在循环中将每一行解析为Class字段,然后将该Class对象存储到数组中



我想一次读取一行CSV文件,然后在循环中将每一行解析为class字段,然后将该class对象存储到数组中。

java类看起来是这样的。

class Main{

String a;
String b;
public String getA() {
return a;
}
public void setA(String a) {
this.a = a;
}
public String getB() {
return b;
}
public void setB(String b) {
this.b = b;
}
public Main(String a, String b) {
super();
this.a = a;
this.b = b;
}

}

我已经写了这个代码。

Scanner inFile1 = new Scanner(new File("C:\Users\souravpal\Documents\Bandicam\a.csv"));
Main us = new USCrimeClass();
StringBuilder sb = new Main();
while(inFile1.hasNext()) {
String line = inFile1.nextLine();
String elements[] = line.split(",");
us.setProcess(elements[0],elements[1],elements[5],elements[9]);
System.out.println(us.toString());
}

"CSV";可能意味着很多不同的东西,但我认为你的CSV文件相当简单:

Avalue1, Bvalue1
Avalue2, Bvalue2
Avalue3, Bvalue3
etc.

以下是如何将其解析为Main对象的List

List<Main> loadCSV(String filename) {
List<Main> result = new ArrayList<>();
try (BufferedReader br = new BufferedReader(new FileInputStream(filename)))
{
String line;
while ((line = br.readLine()) != null) {
String[] cols = line.split("\s*,\s*");
result.add(new Main(cols[0], cols[1]);
}
} catch (Exception ex){
ex.printStackTrace(System.err);
}
return result;
}

考虑使用库(可以处理带引号字段中的逗号(,例如https://commons.apache.org/proper/commons-csv/user-guide.html

File infile = new File("/path/to/myfile.csv");
CSVParser parser = CSVParser.parse(infile, CSVFormat.RFC4180);
for (CSVRecord record : parser) {
String a = record.get("A");
String b = record.get("B");
...
}

相关内容

最新更新