2015-02-09 129 views
0

我有一個文本文件,我應該從中讀取數據。然後,這些數據應被用來設置級別的傳遞:從文本文件讀取輸入到數組列表

  • > 20 →很好
  • 12-20之間→ OK
  • 失敗

.txt文件如下像這樣

X;20 
Y;12 

問題是,當我從文件中讀取數據並將其添加到ArrayList時,它只讀取列。換句話說,結果是索引0包含X;Y,並且索引1包含20;12。我需要的是索引0包含[X 20]和索引1包含[Y 12]

我的代碼是:

BufferedReader assignment = new BufferedReader(new FileReader(assignmentFile)); 
ArrayList<String> assignmentArrayList = new ArrayList<String>(); 
String item; 
while ((item = assignment.readLine()) != null) { 
    assignmentArrayList.add(item); 
    String[] itemSplit = item.split(";"); 
    String passWithDistinction = itemSplit[0]; 
    String pass = itemSplit[1]; 
    System.out.println(passWithDistinction + pass); 
} 
+3

請顯示您的代碼。 – Jens 2015-02-09 11:28:32

+0

爲什麼使用ArrayList而不是簡單的'String'數組? – Aradmey 2015-02-09 11:41:14

+0

您的代碼有效。我無法理解你在找什麼。 – 2015-02-09 11:47:18

回答

1

您可以檢索文件的內容到String陣列像這樣:

File assignmentFile = new File("C:/Dir1/Dir2/file.txt"); 
ReadFile assignment = new ReadFile(assignmentFile.getAbsolutePath()); 
String[] lines = assignment.OpenFile(); 

如果你想設置的字符串,使他們不會有「 ;」符號,添加這些行:

for(int i=0; i<lines.length(); i++) 
    lines[i].replace(";", " "); 
0

如果我理解你的問題正確,那麼你要閱讀的文本文件,並與定義的區別,並通過標記兩個數字結束。我不太確定X和Y的用途以及爲什麼要存儲它們 - 如果您願意,我很樂意提供幫助。

如果你知道文本文件有兩個(也只有兩個)行,那麼你並不需要一個while循環。更簡單的是隻讀取和解析反過來這行:

String[] distinctionLine = assignment.readLine().split(";"); 
int distinction = Integer.parseInt(distinctionLine[1]); 
String[] passLine = assignment.readLine().split(";"); 
int pass = Integer.parseInt(passLine[1]); 

有一些例外情況和錯誤情況,你應該檢查,但希望你的想法的。