繁体   English   中英

从csv文件Java读取数据

[英]Reading data from a csv file Java

我想从我的数据集train.csv中读取数据,并且尝试使用Java来实现。 我的目的是为了将这些原始数据保存到csv文件中,以便从该数据库创建决策树。 我有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;
}

当我运行主类时,它将重复重复该行。 我真的不知道我是否做得正确。 我试图遵循在线教程。 谁能帮我吗? 谢谢

问题是您的读取调用不在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) {
    ....
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM