2012-07-27 138 views
1

我正處在一個編碼實驗的中間,一般來說一切都很順利,直到最後一部分。我真的不知道該從哪裏開始討論這個子問題,而且這真的讓我感到你不能相信。我試過的方式只能得到錯誤。這是一個真正的失敗者,因爲它之前的所有事情以及事情進展順利之後都是如此。這只是我不知道從哪裏開始,甚至在閱讀了一些教程之後,我仍然遇到一些讓它正常工作的重大問題。Java閱讀一個txt文件

基本上,我要讀此txt文件,(http://www.mediafire.com/?a6d7c0c5cdu1gup) ,並把數據轉換成5門陣列(沒有掃描儀)

名稱已進入名稱陣列,所述N/Y具有至進入Before數組,下一列數字必須進入timespent數組,下一列必須進入助手數組,最後一行必須進入風險數組。

因此,我們有5個陣列

String Name [] = new String [20) 

Char Before [] = new Char [20] 

Int timeSpent [] = new Int [20] 

Int Assistants [] = new int [20] 

Double Risk [] = new Double [20] 

因此,這些都是我做了你的5個陣列,但什麼我有在讀的文本文件,寫它,以便相應的列進入麻煩適當的數組。

因此,任何幫助將我的代碼放在一起,並將這些值放入適當的各個陣列中,以便我可以繼續進行,這將非常非常感謝。非常感謝。

+2

這是一門功課的問題嗎? – 2012-07-27 06:44:11

+0

你真的必須使用5個陣列嗎?將用戶定義類型的一個數組(或「List」)與一個人的所有詳細信息結合起來會更清晰。 – 2012-07-27 06:45:59

+1

建議將未來的文本粘貼放入其中一個代碼bin站點。 – nurettin 2012-07-27 06:49:46

回答

2

你可以看看this的例子,它展示瞭如何在不使用類Scanner的情況下遍歷文件。您已經閱讀了該行,您可以使用.split(String regex)將行分割爲令牌。由於所有部分都用逗號分隔,因此可以使用以下代碼段:line.split(",");,其中line表示剛剛從文件中讀取的行。

split函數產生一個數組,因此您可以遍歷它並將數據放入您選擇的正確數組中。

上面應該做你所需要的。你可以,但是,看看JavaCSV這也應該幫你做你需要的東西:

Java的CSV是閱讀和寫作 CSV和純分隔的文本文件小快開源Java庫。

3

使用的BufferedReader用於獲取一行行和使用正則表達式拆分

File file = new File("1.txt"); 
    FileReader fr = new FileReader(file); 
    BufferedReader in = new BufferedReader(fr); 
    String line; 
    while ((line = in.readLine()) != null){ 
     String[] record = line.split(",\\s*"); 
     // record[0] contain name 
     // record[1] contain N/Y etc.. 
     //* code here 

    }