2013-07-17 16 views
0

我正在使用此代碼來讀取csv中的一行並獲取列名稱,但問題是我正在獲取替代的名稱。它正在跳過第一列,然後跳過第三列並讀取第四列。在java中使用緩衝讀取器讀取一行時獲取備用列名稱?

BufferedReader br = new BufferedReader(new FileReader(csvFile)); 
       String line = ""; 
       StringTokenizer st = null; 

       int lineNumber = 0; 
       int tokenNumber = 0; 



       //read comma separated file line by line 
       while ((line = br.readLine()) != null) { 
       lineNumber++; 

       //use comma as token separator 
       st = new StringTokenizer(line, ","); 


       while (st.hasMoreTokens()) { 
        //tokenNumber++; 
        s.add(st.nextToken()); 
        //display csv values 
        System.out.print(st.nextToken() + " "); 

       } 
+0

正如在'StringTokenizer'的javadoc中所說的,你真的不應該在現代(新)代碼中使用它。 'String [] array = line.split(「,」);' –

回答

1

您正在while循環中調用st.nextToken()兩次。每一次,它都會抓住下一個元素。

您可能想用line.split(「,」)替換StringTokenizer,除非您特別需要使用它(如性能)。

+0

感謝它的工作.. – Avinash