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

wqlqzqxt  于 2021-06-30  发布在  Java
关注(0)|答案(1)|浏览(175)

我希望每次读取一行csv文件,然后在循环中将每一行解析为类字段,然后将该类对象存储到数组中。
java类如下所示。
主类{

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());
        }
yacmzcpb

yacmzcpb1#

“csv”可能意味着很多不同的东西,但我假设您的csv文件相当简单:

Avalue1, Bvalue1
Avalue2, Bvalue2
Avalue3, Bvalue3
  etc.

下面是如何将其解析为 ListMain 物体:

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;
}

相关问题