从.txt文件中读取arraylist

Guy*_*Guy 1 java arraylist

我有一个应用程序,用户输入某些单词,这些单词保存到设备上的.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();
    }
Run Code Online (Sandbox Code Playgroud)

现在,问题在于这将每个单词都放在arraylist中,而不是每一行.因此,如果用户输入(例如)'test1',它会将它作为test1添加到arraylist(这很好),但如果用户输入'test 1'(带空格),'test'和'1'将是作为单独的元素添加到arraylist.

显示它应该如何工作的示例:

文本文件的外观(示例)

测试1

测试2

测试3

arraylist现在看起来如何:

测试

1

测试

2

测试

3

arraylist应该如何:

测试1

测试2

测试3

所以我的问题是; 如何将LINES添加到arraylist,而不是从.txt文件中添加单独的单词

Kev*_*sox 5

使用.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
    }
Run Code Online (Sandbox Code Playgroud)

文档