【问题标题】:Store entire line of text file in array line by line (not word by word; include spaces)将整行文本文件逐行存储在数组中(不是逐字;包括空格)
【发布时间】:2015-08-01 02:42:38
【问题描述】:

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

  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);
          }

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

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

【问题讨论】:

标签: java arrays string java.util.scanner


【解决方案1】:

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

为了将来参考,您可以在official documentation.中找到此类信息

【讨论】:

  • 啊!谢谢!这就是我错过的!
【解决方案2】:

Java8 中,您可以使用 streamlimit yield 文件列表内容逐行:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-17
    • 2011-12-04
    • 2021-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-27
    相关资源
    最近更新 更多