使用 StringTokenizer 将 CSV 文件转换为二维数组
Convert CSV file into 2D array using StringTokenizer
我正在尝试将 CSV 文件转换为二维数组,但我遇到了问题。该代码似乎只打印出 CSV 文件中的名字 10 次,然后给我一个越界异常。例如,如果 Player name 是 Rob,它只会一遍又一遍地打印出 Rob。
如果需要更多说明,请询问
try{
int col = 0, row = 0;
System.out.println("Reading " + fileName + " ...");
fr = new FileReader(fileName);
bf = new BufferedReader(fr);
String line = bf.readLine();
while (line != null) {
StringTokenizer st = new StringTokenizer(line,",");
while(st.hasMoreTokens()){
System.out.println(st.nextToken());
data[row][col] = st.nextToken();
col++;
}
col = 0;
row++;
}
}catch(IOException e){
System.err.println("Cannot find: "+fileName);
}
我认为您的代码只读了一行。使用以下代码片段继续 while 循环 -
String line = bf.readLine();
while ((line = br.readLine()) != null) {
//place your code here
}
在上面的代码中,BufferedReader
- br
现在准备读取下一行,它一直持续到 br.readline()
returns 为空。
希望对您有所帮助。
非常感谢。
我正在尝试将 CSV 文件转换为二维数组,但我遇到了问题。该代码似乎只打印出 CSV 文件中的名字 10 次,然后给我一个越界异常。例如,如果 Player name 是 Rob,它只会一遍又一遍地打印出 Rob。
如果需要更多说明,请询问
try{
int col = 0, row = 0;
System.out.println("Reading " + fileName + " ...");
fr = new FileReader(fileName);
bf = new BufferedReader(fr);
String line = bf.readLine();
while (line != null) {
StringTokenizer st = new StringTokenizer(line,",");
while(st.hasMoreTokens()){
System.out.println(st.nextToken());
data[row][col] = st.nextToken();
col++;
}
col = 0;
row++;
}
}catch(IOException e){
System.err.println("Cannot find: "+fileName);
}
我认为您的代码只读了一行。使用以下代码片段继续 while 循环 -
String line = bf.readLine();
while ((line = br.readLine()) != null) {
//place your code here
}
在上面的代码中,BufferedReader
- br
现在准备读取下一行,它一直持续到 br.readline()
returns 为空。
希望对您有所帮助。
非常感谢。