我正在为其中试图覆盖的IOException捕获的代码编写测试。 try / catch看起来像这样:

try {
    oos = new ObjectOutputStream(new FileOutputStream(cacheFileName));
} catch (IOException e) {
    LOGGER.error("Bad news!", e);
} finally {


最简单的方法似乎是使FileOutputStream抛出FileNotFoundException,但也许我会用所有错误的方式。

有人在那里有提示吗?

最佳答案

根据您的评论:


  是的,我想这个问题应该
  确实是“我如何创建一个
  在两个Linux上都不存在的文件
  和Windows?”在Windows上,我可以使用
  'new File(“ X:/”)',其中X:是驱动器
  不存在的字母。在Linux上,
  这不起作用,因为那是一个
  有效的文件名。


查看java.io.File.createTempFile。使用它来创建文件,然后将其删除。

可能将其传递为:

File tempFile;

tempFile = createTempFile(getClass().getName(),
                          Long.toString(System.currentTimeMillis());
tempFile.delete();


这应该以平台独立的方式为您提供一个唯一的名称,您可以安全地使用它,而不必(非常)担心它的存在。

关于java - 强制FileNotFoundException,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/604449/

10-10 18:02