我用来FileOutputStream fos
在单独的线程中创建/追加和写入调试文件:
fos = new FileOutputStream(outputFile, true);
if (!outputFile.exists()) {
outputFile.createNewFile();
}
fos.write(string.getBytes());
此代码在循环中不断调用,而用户可以随时从另一个线程清除=删除文件以重新开始记录调试输出。
现在我真的很惊讶,当文件被删除时,这段代码会在没有引发任何异常的情况下运行,但没有任何反应。即文件没有被重新创建,也没有任何东西被写入。所有的“写入”都丢失了。
fos.write
在每次调用之前,我是否真的必须一直手动检查文件是否已被自己删除?
如果异常会像预期的那样工作,即写入已删除的文件时,它会更容易和更清晰。