从CSV文件创建表

时间:2015-03-09 10:46:58

标签: java parsing csv io bufferedreader

我使用以下代码将文件中的数据插入基于Swing的JTable

String line;
data = new Vector();
columns = new Vector();
try {
    FileInputStream fis = new FileInputStream("D:\\abc00");
    BufferedReader br = new BufferedReader(new InputStreamReader(fis));
    StringTokenizer st1 = new StringTokenizer(br.readLine(), "\t");
    while (st1.hasMoreTokens())
            columns.addElement(st1.nextToken());
    while ((line = br.readLine()) != null) {
            StringTokenizer st2 = new StringTokenizer(line, "\t");
            while (st2.hasMoreTokens())
                    data.addElement(st2.nextToken());
    }
    br.close();
} catch (Exception e) {
        e.printStackTrace();
}

正确形成表格,但每次省略文件的第一行,即如果文件有5行,则表格包含4行。这是由于这条线吗?

StringTokenizer st1 = new StringTokenizer(br.readLine(), "\t");

然后如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

是的,你已经阅读了这一行(如下所示),你的光标移动到下一行,因此你错过了第一行。

StringTokenizer st1 = new StringTokenizer(br.readLine(), "\t");//think of what if you dont have any line?

当您在文件中有行然后使用它或者您可以重新定义缓冲的阅读器时,您可以在字符串变量中读取它。