使用java.io.file在文件系统上创建文件
我正在尝试使用java.io.file在文件系统上创建一个空的.properties文件 我的代码是:使用java.io.file在文件系统上创建文件,java,file,properties-file,Java,File,Properties File,我正在尝试使用java.io.file在文件系统上创建一个空的.properties文件 我的代码是: File newFile = new File(new File(".").getAbsolutePath() + "folder\\" + newFileName.getText() + ".properties"); if (newFile.createNewFile()){ //do sth... } 它说不可能找到指定的路径。 打印文件的构造函数参数时,它会正确显示绝对路径
File newFile = new File(new File(".").getAbsolutePath() + "folder\\" + newFileName.getText() + ".properties");
if (newFile.createNewFile()){
//do sth...
}
它说不可能找到指定的路径。
打印文件的构造函数参数时,它会正确显示绝对路径
出什么问题了?我认为“.”操作员可能是导致错误的原因。不确定您在那里试图做什么,可能误解了您的意图,但请尝试以下操作:
File newFile = new File(new File("folder\\").getAbsolutePath() + ".properties");
新建文件(“folder”,newFileName.getText()+“.properties”)
来创建相对于当前工作目录的文件夹中指定文件的文件引用
createNewFile
之前,您应该确保该目录存在,因为它不会为您执行此操作File newFile = new File("folder", newFileName.getText() + ".properties");
File parentFile = newFile.getParentFile();
if (parentFile.exists() || parentFile.mkdirs()) {
if (!newFile.exists()) {
if (newFile.createNewFile()){
//do sth...
} else {
throw new IOException("Could not create " + newFile + ", you may not have write permissions or the file is opened by another process");
}
}
} else {
throw new IOException("Could not create directory " + parentFile + ", you may not have write permissions");
}
我忽略了
新文件(“.”)。getAbsolutePath()
返回项目的绝对路径,最后带有
,因此我的文件夹可以称为。文件夹
。下次我会检查两次。1-您可以使用新文件(“文件夹”,newFileName.getText()+“.properties”)
将文件存储在相对于当前位置的文件夹中;2.确保路径存在,因为它不会由createNewFile
为您创建(您可以使用newFile.getParentFile().mkdirs()
)非常感谢,它可以工作!在任何情况下,我都会采用您的更干净的解决方案-但是-为什么我的解决方案不起作用呢?我真的不知道,有这么多的上下文缺失,但是从新文件(“.”)开始。getAbsolutePath()+“folder\\\”
在“.”和“folder”之间没有分隔符,因此您以“.folder”代替(填写绝对路径而不是“.”,但你明白了)你检查了目标目录的写入权限了吗?那是。。。我没想到会有这么琐碎的事。谢谢你!不,它没有,您可以使用新文件(“.”
为当前工作目录创建文件引用,就像新文件(“文件夹”)
将创建一个文件
引用,引用当前工作目录中名为文件夹
的文件/目录