2017-03-09 25 views
0

我想在java中讀取CSV文件並將此數據存儲在數組中以便能夠在另一個函數中使用此數據進行搜索。從csv文件存儲中讀取數據並使用java中的這些數據進行搜索

public ArrayList <Resp> processTextToRespList(String filePath) throws IOException { 
    ArrayList <data> result = new ArrayList <data>(); 
    br = new BufferedReader(new FileReader(csvFile)); 
    while((row = BufferedReader.readNext()) != null) { 
     String line = scan.nextLine(); 
     String[][] lineArray = line.split(" "); 
     result.add(new esp(lineArray[0], lineArray[1], lineArray[2])); 
    } 
    return result; 
} 
+0

什麼是您的搜索條件? – Maverick

+0

它是一個ldap搜索。但即時通訊與我在位,我只是不能讓我的頭讀取文件和存儲信息,所以我可以做每一行上的搜索。 – step

+0

如果是鍵值對文件,則使用Map代替ArrayList,因爲在搜索的情況下檢索速度會快得多。 – Maverick

回答

0

我真的不明白你的問題是什麼,但我想它與你提供的代碼有關。我固定在明顯的錯誤把它變成更多的東西編譯:

public List <Resp> processTextToRespList(String filePath) throws IOException { 
    List<Resp> result = new ArrayList<>(); 
    File csvFile = new File(filePath); 
    try(BufferedReader br = new BufferedReader(new FileReader(csvFile))){ 
     String row; 
     while((row = br.readLine()) != null) { 
      String[] lineArray = row.split(" "); 
      result.add(new Resp(lineArray[0], lineArray[1], lineArray[2])); 
     } 
    } 
    return result; 
} 

我還沒有糾正任何邏輯,我只是​​用你宣佈的,而不是你寫最初的非Java代碼中的變量,並關閉了的FileReader。 告訴我,如果這對你來說已經足夠了,或者你的問題比這更復雜。

說明:

我宣佈結果作爲一個列表,而不是一個ArrayList,因爲這是我自己的感性談話,在這裏沒有真正的錯誤。

您已經創建了一個FileReader而不是csvFile,但從未聲明任何csvFile,我認爲它是從filePath生成的File

我在try-with-resources塊中聲明瞭FileReaderBufferedReader,以便它們自動關閉。

我對brreadLine,因爲它是我們實例化的BufferedReader,你不能只是調用靜態方法(不存在),並希望它會工作。

我拆分了我們剛剛閱讀的row,而不是從未聲明的掃描儀讀取的某行。總而言之,我只是修復了一些顯而易見的錯誤,這些錯誤可能在沒有任何想法的情況下複製粘貼某些代碼時出現。我不確定你是否明白你在寫什麼,也不知道你在做什麼。

相關問題