从.txt文件中读取arraylist

时间:2013-08-11 20:22:25

标签: 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();
    }

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

展示一个如何运作的例子:

文本文件的外观(示例)

  

测试1

     

测试2

     

测试3

arraylist现在的样子如何:

  

测试

     

1

     

测试

     

2

     

测试

     

3

arraylist应如何显示:

  

测试1

     

测试2

     

测试3

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

4 个答案:

答案 0 :(得分: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
    }

Documentation

答案 1 :(得分:2)

答案 2 :(得分:0)

而不是使用scanner.next();使用scanner.nextLine();

答案 3 :(得分:0)

您可以使用scanner.nextLine();