我在新目录中创建新文件:
File logFile = new File("C:/test/test/test.txt");
logFile.getParentFile().mkdirs();
logFile.createNewFile();
如果我不尝试创建新文件(没有文件扩展名,只有"测试"文件):
File logFile = new File("C:/test/test");
logFile.getParentFile().mkdirs();
logFile.createNewFile();
我得到:
FileNotFoundException(访问被拒绝)
在现代版本的Windows中,如果没有管理权限,普通用户将无权写入c:/。您的代码看起来还可以(就mkdirs()的使用而言),但我认为您遇到了这个问题。
请尝试在c:\users\YourUserName中创建一个目录——这是一个问题,因为您的java程序缺乏写入c:\的管理权限
Simple:C:/test/test
是一个现有目录,createNewFile
将在这方面失败。该异常只有一个非常容易引起误解的名称FileNotFoundException
。
(此外,通常不需要createNewFile()
,但我接受它,之后您只打开文件进行附加。)