2015-03-09 4 views
-1

Я использую следующий код для вставки данных из файла в Swing на основе JTable.Создать таблицу из файла CSV

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"); 

Тогда как исправить это?

ответ

2

Да, вы уже прочли строку (как показано ниже), и ваш курсор переместился на следующую строку и, следовательно, вы пропустили первую строку.

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

Вы можете прочитать его в строковой переменной, когда у вас есть строка в файле, а затем использовать его, или вы можете переопределить буферизованного читателя.

+0

Я добавил как ** StringTokenizer st1 = new StringTokenizer ("a \t b", "\ t"); ** Он работает сейчас. Благодарю. – Leo

Смежные вопросы