我正在用 Java 编写一个私有方法,该方法读取和写入一个简单的文本文件,如果它不存在,它应该创建它,因为 createNewFile() 首先检查它。
private boolean updateGameQuota(String name, String quantity) {
...
File quotaLog = new File("seller-quotas.txt");
quotaLog.createNewFile();
...
return ret;
}
编译时错误是:SmsFunctions.java:256: error: unreported exception IOException; 必须被捕获或声明被抛出 quotaLog.createNewFile(); ^ 1 个错误
将它放在 try-catch 块中似乎不是问题,因为我尝试过(也在许多其他尝试传递 quotaLog 的行上),但最终我到了很明显其他地方出了问题的地步。File 对象很好,但是如果我尝试使用 createNewFile 或说
FileReader sQReader = new FileReader(quotaLog);
即使该文件肯定存在,我也会收到 FileNotFoundException,并且我在其他文本文件上尝试了此操作,这些文本文件在其他地方成功读取,结果相同。
任何帮助或想法将不胜感激!
更新:所以最后我的问题确实只是在所有内容周围放置 try-catch 块,并确保在其中设置的变量首先在这些块之外创建。我的困惑来自于一种错误的确定感,即 fileraders/filewriters 不应该需要 try catch 块(我可以发誓我没有多次使用它们),而这个错误实际上是其他事情的迹象。也许在关闭线程之前,有人可以详细说明为什么 Java 并不总是对此大惊小怪,如果这是真的?
谢谢!