gpt4 book ai didi

java - 找不到 createNewFile 的文件

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

我正在 Java 中编写一个私有(private)方法,用于读取和写入一个简单的文本文件,如果该文件不存在,则应该创建该文件,因为 createNewFile() 首先检查该文件。

private boolean updateGameQuota(String name, String quantity) {
...
File quotaLog = new File("seller-quotas.txt");
quotaLog.createNewFile();
...
return ret;
}

编译时错误为:SmsFunctions.java:256: error: 未报告的异常 IOException;必须被捕获或宣布被扔出 配额日志.createNewFile(); ^1 个错误

将它放在 try-catch block 中似乎不是问题,因为我尝试过(也在尝试传递quotaLog的许多其他行上),但最终我到达了一个很明显其他问题的地步。 File 对象很好,但是如果我尝试使用 createNewFile 或说

FileReader sQReader = new FileReader(quotaLog);

即使文件确实存在,我也收到 FileNotFoundException,并且我在其他文本文件上尝试了此操作,这些文件在其他地方成功读取,结果相同。

任何帮助或想法将不胜感激!

更新:所以最后我的问题确实只是在所有内容周围放置 try-catch block ,并确保其中设置的变量首先在这些 block 之外创建。我的困惑来自于一种错误的确定感,即文件读取器/文件编写器不应该需要 try catch block (我可以发誓我没有多次使用它们),并且该错误实际上是其他原因的指示。也许在关闭线程之前有人可以详细说明为什么 Java 并不总是对此大惊小怪,如果这是真的?

谢谢!

最佳答案

File.createNewFile()可以抛出 IOException(受检查的异常),并且需要包含在 try-catch block 中,或者您使用它的方法需要声明为 throws IOException 并且您需要在上游处理它.

要调试 FileNotFoundException,您可以尝试:

File quotaLog = new File("seller-quotas.txt");
System.out.println(quotaLog.getAbsolutePath());

它使用 File.getAbsolutePath()方法打印期望文件存在的位置。

关于java - 找不到 createNewFile 的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15747385/

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