我正在尝试用Java编写一个文件,或者在文件不存在的情况下创建一个新文件。(使用JDK 14)。但是,当我运行以下代码时,在if语句条件下得到一个IOException,如果该文件不存在,它读取The system could not find the file specified
,如果该文件存在,则读取Access is denied
。
File file = new File(filePath);
System.out.println(filePath); // C:\Users\username\Documents\test.txt
if (file.createNewFile()) {
System.out.println("File successfully created");
} else {
System.out.println("File already exists");
}
当我试图将其保存到桌面文件夹并成功地保存该文件时,代码可以工作,但无论出于何种原因,都不允许触摸文档。
我运行IntelliJ的用户可以完全访问计算机上的所有文件,并且以管理员身份运行IDE没有解决问题。但是,我可以保存到用户文件夹和桌面。只有它的文档或子目录,我不能保存到。
站点上有一些类似的问题,比如this one,但是原因与我的情况不一样--这是权限问题,而不是缺少目录的问题。
发布于 2020-10-31 15:16:59
我刚刚也遇到了同样的问题。在某些Windows 10安装上,JFileChooser()似乎没有告诉操作系统用户已经选择了一个文件夹,因此,即使用户拥有完全访问权限,但沙箱、恶意软件控制、访问控制阻止创建文件的访问权限(权限检查是确定的,但IOException 13或访问被拒绝时文件写入失败)。但是,如果FileDialog()在JFileChooser失败时工作.
发布于 2020-08-26 22:10:43
下面是我要尝试调试的内容:
您应该尝试将文件保存到“My Documents”,而不是'Documents'?
发布于 2020-08-26 22:53:49
如果您想要将数据写入文件,只需使用任何Writer
,例如:
FileWriter writer = new FileWriter(yourFile);
您可以使用流筛选来加快操作。更多地显示你的代码。您刚刚显示了现有文件的条件。
如果要在“文档”文件夹中创建文件,请获取路径,然后创建一个:
File file = new File(documentPath);
while(!file.exists())
file.createNewFile();
//condition for file existing...`
如果我不帮忙,请在下面评论,只是我无法理解你的问题:)。祝好运
https://stackoverflow.com/questions/63605662
复制相似问题