2013-12-21 38 views
0

我需要使用java代碼更新CSV文件中的現有條目。我寫的代碼如下。我能夠將用戶給出的條目與文件中的條目進行匹配,但無法確定如何在同一位置寫入新條目。如何更新csv文件中的現有條目

while ((row = reader.readNext()) != null)  
{  
    for (int i = 0; i < 1; i++)     
    {  
     System.out.print("row is "+row[i]); 

     // display CSV values             
     System.out.println("Cell Value: " + row[i]); 
     System.out.println("User Input: " + t1); 
     System.out.println("-------------"); 
     if(t1.equals(row[0])) 
     { 
      data.add(new String[] { t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, 
        t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, 
        t23, t24, t26, t27, t28, t29, t30, t31, t32, t33, t34, t35, 
        t36, t37, t38, t39 
      }); 
      flag=1; 
      writer.writeAll(data); 
      break; 
     }    
    } 
    rowno++; 
} 
+0

如果我需要繼續這樣做n次,該怎麼辦? – user2392588

+0

[使用java更新特定單元格csv文件]的可能重複(http://stackoverflow.com/questions/4397907/updating-specific-cell-csv-file-using-java) –

回答

0

這就是你需要做一個新的值寫入到相同的位置

  • 有兩個文件,輸入一個從閱讀,新的寫入
  • 在循環,從文件中讀取一行,如果不匹配,則寫入輸出文件
  • 如果從輸入文件中找到,請在輸出文件中寫入新條目。
  • 完成文件循環。
  • 關閉流
  • 將輸出文件的名稱更改爲輸入文件的名稱。
+1

它應該是'有兩個文件' – Keerthivasan

+0

如果我需要繼續這麼做n次呢? – user2392588

+0

你可能想看看「RandomAccessFile」。這有點複雜,但如果你學會了使用它,它可能對這樣的情況有所幫助 –

相關問題