【问题标题】:Reading text file into arraylist将文本文件读入arraylist
【发布时间】:2016-07-26 05:48:15
【问题描述】:

我真的是 Java 新手,所以我很难弄清楚这一点。所以基本上我有一个看起来像这样的文本文件:

1:John:false  
2:Bob:false    
3:Audrey:false

如何从文本文件中为每一行创建一个 ArrayList?

【问题讨论】:

  • 在 stackoverflow 上发布查询之前您是否尝试过任何事情?
  • 非常感谢!!!!
  • 是的,如果你想看的话,我有我所有的代码
  • 我希望鼓励您在发布到 stackoverflow 之前查看教程、书籍和文档。这是一种更好的学习方式。

标签: java arraylist


【解决方案1】:

如果您知道如何使用 Scanner 或使用 BufferedReader 逐行读取文件,那么将文本文件读取到 ArrayList 对您来说并不难。您需要做的就是读取每一行并将其存储到 ArrayList 中,如下例所示:

BufferedReader bufReader = new BufferedReader(new 
FileReader("file.txt"));
ArrayList<String> listOfLines = new ArrayList<>);
String line = bufReader.readLine(); while (line != null)
{
    listOfLines.add(line);
    line = bufReader.readLine();
} 
bufReader.close();

请记住在完成后关闭 BufferedReader 以防止资源泄漏,因为您没有 try-with-resource 语句

【讨论】:

    【解决方案2】:

    从文件中读取并将每一行添加到 arrayList 中。例如,参见代码。

    public static void main(String[] args) {
    
            ArrayList<String> arr = new ArrayList<String>();
            try (BufferedReader br = new BufferedReader(new FileReader(<your_file_path>)))
            {
    
                String sCurrentLine;
    
                while ((sCurrentLine = br.readLine()) != null) {
                    arr.add(sCurrentLine);
                }
    
            } catch (IOException e) {
                e.printStackTrace();
            } 
    
        }
    

    【讨论】:

    • 非常感谢!这有助于我指定除了完美的谢谢之外我需要什么类型的数组!
    • 哦,是的。我错过了 。对不起。你能接受这个答案吗?
    【解决方案3】:

    java 8 让你这样做

    String fileName = "c://lines.txt";
            List<String> list = new ArrayList<>();
    
            try (Stream<String> stream = Files.lines(Paths.get(fileName))) {
    
                list = stream
                        .map(String::toUpperCase)
                        .collect(Collectors.toList());
    
            } catch (IOException e) {
                e.printStackTrace();
            }
    
            list.forEach(System.out::println);
    

    【讨论】:

      【解决方案4】:

      这会对你有所帮助。

      List<String> list = new ArrayList<String>();
      BufferedReader reader = new BufferedReader(new FileReader("list.txt"));
      String line;
      while ((line = reader.readLine()) != null) {
          list.add(line);
      }
      reader.close();
      

      然后你就可以访问数组列表中的那些元素了。

      【讨论】:

        【解决方案5】:

        虽然我上面的答案有效,但这是另一种方法。确保导入 java.util.Scanner。

        public static void main(String[] args) {
             ArrayList<String> list = new ArrayList<String>();
             Scanner scan = new Scanner("YOURFILE.txt");
             while(scan.hasNextLine()){
                 list.add(scan.nextLine());
             }
             scan.close();
        }
        

        【讨论】:

          猜你喜欢
          • 2011-07-17
          • 1970-01-01
          • 2015-05-04
          • 1970-01-01
          • 1970-01-01
          • 2019-03-26
          • 1970-01-01
          • 2012-06-08
          相关资源
          最近更新 更多