我正在尝试使用FileWriter将一些文本写入文件。该程序在运行时不会引发任何异常,除了本来打算的那些异常(写入文件是引发异常的一部分),但文件留为空白。该文件与包含异常的.java文件和引发异常的.java文件位于同一目录中。
我正在正确地刷新并关闭FileWriter对象,它位于try / catch块中,该块应该打印代码遇到的任何异常,我尝试将PrintWriter与FileWriter作为参数,以及该方法的其他部分一起使用绝对执行。
NegativeBalanceException() throws IOException{
super("Error:negative balance");
try {
FileWriter logger = new FileWriter("logfile.txt", false);
logger.write("Error:negative balance");
logger.flush();
logger.close();
}
catch(Exception e) {
e.printStackTrace();
}
}
我希望文件包含消息“金额超出余额-100.0”和“错误:负余额”。肯定会创建异常,我可以在其上调用getMessage()来打印上述两条消息。但是,该文件开始为空白,并且在程序完成后仍然为空白。
我已经找到了解决方案。我在Eclipse中工作,似乎相对路径从程序的工作目录开始,而不是我假设的src目录(以及放置文件的位置)。我使Java在错误的位置查找文件。