簡體   English   中英

從.txt文件讀取arraylist

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM