gpt4 book ai didi

未找到 Java I/O 文件

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

当前正在尝试编写一个程序来从文件中获取输入并将其存储在数组中。但是,每当我尝试运行该程序时,都无法找到该文件(尽管 file.exists() 和 file.canRead() 返回 true)。

这是我的代码:

    public void getData (String fileName) throws FileNotFoundException
{
File file = new File (fileName);
System.out.println(file.exists());
System.out.println(file.canRead());
System.out.println(file.getPath());
Scanner fileScanner = new Scanner (new FileReader (file));
int entryCount = 0; // Store number of entries in file

// Count number of entries in file
while (fileScanner.nextLine() != null)
{
entryCount++;
}

dirArray = new Entry[entryCount]; //Create array large enough for entries
System.out.println(entryCount);

}

public static void main(String[] args)
{
ArrayDirectory testDirectory = new ArrayDirectory();


try
{
testDirectory.getData("c://example.txt");
}

catch (Exception ex)
{
ex.printStackTrace();
}

}

(在当前状态下,该方法仅用于计算行数并创建数组)

控制台输出如下:true true c:/example.txt

程序似乎在实例化扫描仪的行上抛出“FileNotFoundException”。

在调试时检查"file"对象时我注意到的一件事是,虽然它的“路径”变量的值为“c:\example.txt”,但它的“文件路径”值为空。不确定这是否与问题相关

编辑:在布兰登·朗回答之后,我更新了“catch” block 。堆栈跟踪如下:

java.util.NoSuchElementException: No line found
at java.util.Scanner.nextLine(Unknown Source)
at assignment2.ArrayDirectory.getData(ArrayDirectory.java:138)
at assignment2.ArrayDirectory.main(ArrayDirectory.java:193)

扫描仪似乎无法识别该文件,因此无法找到该行

最佳答案

此代码可能不会执行您想要的操作:

try
{
testDirectory.getData("c://example.txt");
}

catch (Exception ex)
{
new FileNotFoundException("File not found");
}

如果捕获任何异常,则运行 FileNotFoundException 的构造函数,然后将其丢弃。尝试这样做:

try
{
testDirectory.getData("c://example.txt");
}
catch (Exception ex)
{
ex.printStackTrace();
}

关于未找到 Java I/O 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23298631/

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