我正在编写一个程序,其中文本文件的内容将逐行存储在一个数组中。我有它工作,但它一次只能存储一个字。
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或列表)
注意:我能找到的大多数类似问题只是试图存储包含单个单词的行。
答案 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()