我正在使用JAVA创建一个日志文件,但是在创建它之后,当我断言它存在时,我得到了一个java.lang.AssertionError。我必须做一些完全错误的事情,但我不知道是什么。这是代码:
File testLogFile = new File("/home/ninad/eclipse-workspace/Log.txt");
testLogFile.createNewFile();
service = builder.withLogFile(testLogFile).build();
service.start
assertTrue(testLogFile.exists());
答案 0 :(得分:1)
我可以想到一些可能的解释:
您没有查看createNewFile()
来电的结果。如果文件在AND成功创建之前不存在,则返回true。
通过阅读javadoc,如果尝试创建文件并失败, 方法会抛出IOException
。但另一方面,如果您不测试通话结果,则无法确定是否有新文件。
构建器或服务可能正在删除或重命名日志文件。
如果代码是多线程应用程序的一部分,则另一个线程可能已删除/重命名该文件。
该文件可能(理论上)已被其他应用程序删除/重命名。
您可能具有(操作系统级别)权限来创建文件,但不测试其存在。 (这看起来有点牵强......但是有些操作系统有"复杂的#34;权限系统。)
可能还有其他我想不到的事情。如果您提供了MCVE(包括"构建器"实现),我们可以检查。