2015-10-07 202 views
0

我想要一個用戶可以上傳CSV文件的功能,其中的內容將被保存到數據庫中。上傳並保存到數據庫中對我來說不是問題,而是如何讀取CSV文件。我只對如何工作的文件狹窄的背景,我的一切都是這些代碼:用Java讀取CSV文件

InputStream file = item.getInputStream(); 
// How do I read it? 

回答

1

對於讀取CSV文件,你可以使用BufferedReader類:

BufferedReader reader = new BufferedReader(
    new InputStreamReader(new FileInputStream("CSV file location")) 
); 

之後,使用StringTokenizer來讀取文件中的每個常見的分隔值,例:

if(reader.readLine()!=null) { 
    StringTokenizer tokens = new StringTokenizer(

    // this will read first line and separates values by (,) and stores them in tokens. 
    (String) reader.readLine(), ","); 

    tokens.nextToken(); // this method will read the tokens values on each call. 
} 

對於例如,CSV文件具有僱員的記錄,如:

ram,101 
  • 第一次,tokens.nextToken()致電將會返回ram
  • 第二次,tokens.nextToken()致電將返回101
+0

這項工作考慮到我正在使用我的電腦中使用的目錄。但是,我想要的是文件上傳,但'BufferedReader reader = new BufferedReader(new InputStreamReader(file));'似乎不工作,因爲我在這一行發生錯誤'List items = new ServletFileUpload(new DiskFileItemFactory() ).parseRequest(request);' – nubteens

+0

對不起,我只是忘記導入一個jar文件。這完全有效!非常感謝你 – nubteens