如何从java中的CSV文件中提取数据

时间:2017-12-01 20:59:26

标签: java eclipse knn

我的任务是用java实现K最近邻居。要使用2个csv文件。一个是培训,一个是测试,它们包含人口普查中有关人们赚取多少钱的数据。

某些文件的示例是(这正是文件中的文件):

meta data: age, workclass, fnlwgt, education, education-num, marital-status, occupation, relationship, race, sex, capital-gain, capital-loss, hours-per-week, native-country, earns

example 1: 25, Private, 226802, 11th, 7, Never-married, Machine-op-inspct, Own-child, Black, Male, 0, 0, 40, United-States, <=50K

example 2: 38, Private, 89814, HS-grad, 9, Married-civ-spouse, Farming-fishing, Husband, White, Male, 0, 0, 50, United-States, <=50K

我只是不明白如何使用扫描仪和文件阅读器从这些文件中获取关键信息,例如,如果我只想要每个人在简化中工作的时间。

如果你有一个关于如何用knn实现这个的基本概要,那么也会被证明......

抱歉违反任何规则或不完全了解如何提前提问。

1 个答案:

答案 0 :(得分:0)

您可以将文件读取器包装在BufferedReader中,然后逐行读取并使用拆分(“,”)或扫描程序进行标记。也许是这样的?

public void readCsv() throws IOException {
    File file = new File("filename.csv");
    FileReader fileReader = new FileReader(file);
    BufferedReader bufferedReader = new BufferedReader(fileReader);
    String line;
    String[] tokenizedLine;

    while ((line = bufferedReader.readLine()) != null) {
        tokenizedLine = parse(line);
        // do stuff with your array
    }
}

private String[] parse(String line) { // use split or Scanner
    return line.split(",");
}