gpt4 book ai didi

java - 尝试将文件写入数组 - 出现 NoSuchElementException

转载 作者:行者123 更新时间:2023-12-01 18:12:46 28 4
gpt4 key购买 nike

(为此,我需要使用数组 - 而不是数组列表。剪切代码以使其更易于理解。重命名变量和常量以进行标记,以便稍后阅读本文的其他人更好地理解我在做什么。)

在类级别,我的数组定义如下:

private static final int CONSTANT = 20;
public static String[] arrayName = new String[CONSTANT - 1];

在主方法中,我指向这样的方法:

readArrays("filenName.txt", arrayName);

这样的一行指向以下完整的方法,这是发生错误的地方:

    public static void readArrays(String codeFile, 
String[] Arrays)
{

try ( Scanner fin = new Scanner ( new File(codeFile) ); )
{
for (int i = 0; i < CONSTANT - 1; i++)
{
Arrays[i] = fin.next();
}
}
catch (FileNotFoundException e)
{
System.err.println( "Read Error: " + e.getMessage() );
}

它在 NetBeans 中没有显示任何错误,但在控制台窗口中,确切的错误消息是:

 run:
Exception in thread "main" java.util.NoSuchElementException
at java.util.Scanner.throwFor(Scanner.java:862)
at java.util.Scanner.next(Scanner.java:1371)
at mp06.Main.readArrays(Main.java:47)
at mp06.Main.main(Main.java:33)
Java Result: 1
BUILD SUCCESSFUL (total time: 0 seconds)

是什么导致了这个错误?最终,我的目标是使用相同的方法将多个文本文件的全部内容写入多个数组,而不使用任何其他方法。

最佳答案

    try ( Scanner fin = new Scanner ( new File(codeFile) ); ) 
{
for (int i = 0; i < CONSTANT - 1 && fin.hasNext(); i++)
{
Arrays[i] = fin.next();
}
}
catch (FileNotFoundException e)
{
System.err.println( "Read Error: " + e.getMessage() );
}

您还需要检查扫描仪是否有下一个。

Java8中,可以使用stream来读取文件:

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

关于java - 尝试将文件写入数组 - 出现 NoSuchElementException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31738657/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com