我的代码写入文件,写入文件时出现访问被拒绝错误。
Files.write(path, myString.getBytes());
例外是休闲
FAILED to write to file.
java.nio.file.AccessDeniedException:
at sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:83)
at sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:97)
at sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:102)
at sun.nio.fs.WindowsFileSystemProvider.newByteChannel(WindowsFileSystemProvider.java:229)
at java.nio.file.spi.FileSystemProvider.newOutputStream(FileSystemProvider.java:430)
at java.nio.file.Files.newOutputStream(Files.java:170)
at java.nio.file.Files.write(Files.java:3058)
答案 0 :(得分:1)
对不起,这不是一个完整的答案,但它不适合对这个问题的评论。我希望它有所帮助。
来自https://superuser.com/questions/342276/cannot-save-in-hard-disk-drive-c
从Windows XP开始,如果没有管理员权限,系统分区的根目录将无法写入。但是,出于安全原因,即使以管理员身份登录,Windows Vista和Windows 7也不会默认授予管理员权限,除非明确提升到此权限级别,这可能需要您单击UAC prompt。
由于您没有尝试写入C:\
的根目录,我认为这不是权限问题,因此可能是另一个应用程序锁定了该文件。您是否在另一个应用程序(例如记事本)中打开了.txt
?
检查打开file handles的一种方法是使用Process Explorer。您可以使用 Ctrl + F 并搜索文件的完整路径或名称,Process Explorer将列出对文件具有打开句柄的所有进程。您可以使用 Ctrl + H 查看任何应用程序的所有句柄,甚至可以从此处关闭句柄。注意:如果在关闭句柄时获得拒绝访问权限,请选择文件→显示所有进程的详细信息,然后重试。