首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法创建FileWriter

无法创建FileWriter
EN

Stack Overflow用户
提问于 2022-01-25 00:05:48
回答 1查看 141关注 0票数 -2

我试图创建一个指向每个人都有写访问权限的文件夹的FileWriter实例:

代码语言:javascript
复制
new FileWriter("C:\\Temp\java_play\\temp")

我得到了java.io.FileNotFoundException的详细信息:

代码语言:javascript
复制
"C:\Temp\java_play\temp (Access is denied)"

该文件夹存在,如果我在调试器中停止并在下面对表达式进行计算,它总是按它应该返回的方式返回true:

代码语言:javascript
复制
new File("C:\\Temp\java_play\\temp").canWrite()

我不明白怎么回事。我正在使用intelij,我有Windows 7操作系统,我试图使用Java 8来运行它。

提前谢谢你。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-25 10:49:15

你已经报告了预期的行为。在Windows上,任何使用FileWriter写入目录的尝试都将失败,导致访问被拒绝:

代码语言:javascript
复制
File folder = new File("C:\\Temp\java_play\\temp");
System.out.println("folder.isDirectory()="+folder.isDirectory()+" folder.canWrite()="+folder.canWrite());
// prints "folder.isDirectory()=true folder.canWrite()=true"

System.out.println("new FileWriter("+folder+")="+new FileWriter(folder));
// reports Exception java.io.FileNotFoundException: C:\Temp\java_play\temp (Access is denied)

只要提供的文件名是可写的,更改文件夹中文件的路径就可以正常工作:

代码语言:javascript
复制
File file   = new File(folder, "file"+System.nanoTime()+".xyz");
try(FileWriter fw = new FileWriter(file)) {
   // no exception
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70841953

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档