从 csv 文件读取数据 Java

Reading data from a csv file Java

我想从我的数据集 train.csv 中读取数据,我正在尝试使用 Java 来实现它。我的目标是获取这些原始数据,以便在 csv 文件中,以便从该数据库创建决策树。我有 class DAO,我在其中实现了一个名为 extractTrainingData 的方法,我在其中编写代码来读取数据。这个方法如下。

public static BufferedReader exTractTraningData(File datafile, String ListOfCharacteristics) throws IOException {

    try {
        //create BufferedReader to read csv file
        BufferedReader reader = new BufferedReader(new FileReader(datafile));

        String strLine = "";
        StringTokenizer st = null;

        int lineNumber = 0, tokenNumber = 0;;

        String line = reader.readLine();

        while ((strLine = line) != null) {
            lineNumber++;
            //break comma separated line using ","
            st = new StringTokenizer(strLine, ",");

            while (st.hasMoreTokens()) {
                //display csv values
                tokenNumber++;
                System.out.println("Line # " + lineNumber
                        + ", Token # " + tokenNumber
                        + ", Token : " + st.nextToken()
                         + ": " + line);
            }
            //reset token number
            tokenNumber = 0;;
        }
    } catch (Exception e) {

        System.out.println("Exception while reading csv file: " + e);
    }
    return null;
}

当我 运行 主 class 时,它重复重复该行。我真的不知道我做的是否正确。我试图按照在线教程进行操作。谁能帮我吗?谢谢

问题是您的读取调用不在 while 循环的测试范围内。

String strLine = "";

String line = reader.readLine();

while ((strLine = line) != null) {

应该是

String strLine = "";

while ((strLine = reader.readLine()) != null) {

这样 while 循环的每次迭代都会对新的读取尝试的结果进行操作

你的 while 循环永远不会更新,因为你永远不会更新 line

您可能想要的是

String strLine;
while ((strLine = reader.readLine()) != null) {
    ....
}