[英]Reading input from a text file into an arraylist
我有一個文本文件,應該從中讀取數據。 然后應該使用數據來設置要通過的級別:
.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);
}
您可以像下面這樣將文件的內容檢索到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(";", " ");
如果我正確理解了您的問題,那么您想閱讀文本文件並以定義區別和通過標記的兩個數字結尾。 我不確定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]);
您應該檢查許多異常和錯誤情況,但希望您能理解。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.