Files.createTempDirectory(“”)抛出NullPointerException

时间:2014-06-25 11:02:36

标签: java windows nullpointerexception nio2 tempdir

当我致电Files.createTempDirectory("")时,我得到以下异常:

java.lang.NullPointerException
at sun.nio.fs.WindowsSecurityDescriptor.fromAttribute(WindowsSecurityDescriptor.java:353)
at sun.nio.fs.WindowsFileSystemProvider.newByteChannel(WindowsFileSystemProvider.java:220)
at java.nio.file.Files.newByteChannel(Files.java:315)
at java.nio.file.Files.createFile(Files.java:586)
at java.nio.file.TempFileHelper.create(TempFileHelper.java:138)
at java.nio.file.TempFileHelper.createTempFile(TempFileHelper.java:161)
at java.nio.file.Files.createTempFile(Files.java:803)

我发现Files.createTempDirectory("")的任何使用示例都没有在FileAttribute中传递过。 我尝试了Files.createTempDirectory("", new FileAttribute<?>[] { });,但也没有帮助。

我在Windows 7系统上使用32位JDK 7。 我不是机器上的本地管理员。

有没有人来过这个?

更新1:

Files.createTempFile(this.tempDir.toPath(), "tmpFile", "");似乎也有同样的问题。

作为一种解决方法,我已转移到com.google.common.io.Files.createTempDir()

1 个答案:

答案 0 :(得分:0)

您是否尝试过使用Files.createTempDirectory(null)而不是Files.createTempDirectory("")。在文档中,您可以阅读到有可能将前缀作为空对象传递。

https://docs.oracle.com/javase/8/docs/api/java/nio/file/Files.html#createTempDirectory-java.lang.String-java.nio.file.attribute.FileAttribute...-