【发布时间】:2019-05-03 02:35:52
【问题描述】:
我想从我的数据集 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;
}
当我运行主类时,它会重复该行。我真的不知道我是否做得对。我尝试按照在线教程进行操作。谁能帮我吗?谢谢
【问题讨论】:
-
如果您不使用受信任的 API,您可能会遇到更多问题。我推荐commons.apache.org/proper/commons-csv。
-
这只是一个小组项目,不是专业的,但感谢您的建议
-
您只调用一次 readLine(),在循环之前...
-
谢谢 终于在读取数据集了。但它也在读取一些空值。有什么方法可以忽略数据集中具有缺失值(即空值)的每一行?
标签: java file filereader decision-tree