[英]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.