逐行存储整行文本文件(不是逐字逐句;包含空格)

时间:2015-08-01 02:42:39

标签: java arrays string java.util.scanner

我正在编写一个程序,其中文本文件的内容将逐行存储在一个数组中。我有它工作,但它一次只能存储一个字。

  try ( Scanner fin = new Scanner ( new File("toDoItems.txt") ); ) 
    {
    for (int i = 0; i < listCount && fin.hasNext(); i++) 
          {
          textItem[i] = fin.next();
          }
    }

listCount变量存储从顶部读取文件的行数。相反,它告诉它要读多少字。如果不知道每行可能有多长,我该怎么做才能将整行读入数组?

我将数组大小设置为比我需要的大得多,我使用以下内容一次显示一行项目,只显示正在使用的项目(以避免长列表空白)

    for (int i = 0; i < listCount; i++) 
          {
              String temp = textItem[i];
              System.out.println(temp);
          }

(为此我仅限于数组。没有Arraylists或列表)

注意:我能找到的大多数类似问题只是试图存储包含单个单词的行。

2 个答案:

答案 0 :(得分:1)

fin.hasNext()更改为fin.hasNextLine(),将fin.next()更改为fin.nextLine()

为了将来参考,您可以在official documentation.

中找到此类信息

答案 1 :(得分:1)

Java8 中,您可以将 限制一起使用逐行 产量 文件列表内容:

 List<String> contents = Files.lines(Paths.get("toDoItems.txt")).limit(listCount).collect(Collectors.toList());

fin.next()将获得token的下一个输入。它应该是fin.nextLine()