使用StringTokenizer将CSV文件转换为2D数组

时间:2015-03-28 19:17:11

标签: java csv multidimensional-array bufferedreader filereader

我试图将CSV文件转换为2D数组但是我遇到了问题。代码似乎只在CSV文件中打印出第一个名字10次,然后给我一个越界异常。例如,如果玩家名称是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);
}   

1 个答案:

答案 0 :(得分:1)

我认为你的代码只读了一行。使用以下代码段继续while循环 -

String line = bf.readLine();
while ((line = br.readLine()) != null) {
    //place your code here 
}  

在上面的代码中BufferedReader - br现在已准备好读取下一行,并继续直到br.readline()返回null。

希望它会有所帮助 非常感谢。