首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >一次读取一行CSV文件,然后在循环中将每行解析为Class字段,然后将Class对象存储到数组中

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

Stack Overflow用户
提问于 2020-12-13 21:26:43
回答 2查看 253关注 0票数 0

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

java类如下所示。

类Main{

代码语言:javascript
复制
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;
}

}

我已经写了这段代码。

代码语言:javascript
复制
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());
        }
EN

回答 2

Stack Overflow用户

发布于 2020-12-13 22:54:37

" CSV“可能有很多不同的含义,但我假设你的CSV文件相当简单:

代码语言:javascript
复制
Avalue1, Bvalue1
Avalue2, Bvalue2
Avalue3, Bvalue3
  etc.

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

代码语言:javascript
复制
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;
}
票数 0
EN

Stack Overflow用户

发布于 2021-11-06 23:26:33

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

代码语言:javascript
复制
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");
    ...
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65276157

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档