[英]Reading arraylist from a .txt file
我有一個應用程序,用戶可以輸入某些單詞並將這些單詞保存到設備上的.txt文件中。 然后,我從該.txt文件創建arraylist。 這是代碼:
try {
Scanner s = new Scanner(recordedFiles);
recordedFilesArray = new ArrayList<String>();
while (s.hasNext()){
recordedFilesArray.add(s.next());
}
s.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
現在的問題是,這會將每個單詞而不是每一行都放到arraylist中。 因此,如果用戶輸入(例如)“ test1”,則會將其作為test1添加到arraylist中(很好),但是如果用戶輸入“ test 1”(帶空格),則“ test”和“ 1”將是添加到arraylist作為單獨的元素。
顯示一個示例它應該如何工作:
文本文件的外觀(示例)
測試1
測試2
測試3
現在arraylist的樣子:
測試
1個
測試
2
測試
3
arraylist應該是什么樣的:
測試1
測試2
測試3
所以我的問題是; 如何將行添加到arraylist,而不是將單詞與.txt文件分開
使用.nextLine()
,其功能如下:
使該掃描儀前進到當前行之外,並返回被跳過的輸入。 此方法返回當前行的其余部分,但不包括最后的任何行分隔符。 該位置設置為下一行的開始。
正如Matt Ball指出的那樣,while循環應使用hasNextLine()
而不是hasNext()
try {
Scanner s = new Scanner(recordedFiles);
recordedFilesArray = new ArrayList<String>();
while (s.hasNextLine()){
recordedFilesArray.add(s.nextLine());
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
s.close(); //close file on success or error
}
而不是使用scanner.next();
使用scanner.nextLine();
您可以使用scanner.nextLine();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.