从 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) {
....
}
我想从我的数据集 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) {
....
}