Java 在项目内部创建.txt文件
我想在我的项目文件夹中创建一个新的Java 在项目内部创建.txt文件,java,Java,我想在我的项目文件夹中创建一个新的.txt文件,我想给它以下路径: Contents/FrameClasses/Data/Datafiles/MYFILE.txt 我用来制作文件夹的是: File MYFILE = new File("Contents/FrameClasses/Data/Datafiles/MYFILE.txt"); MYFILE.getParentFile().mkdir(); try{ if(MYFILE.createNewFile()){ //d
.txt
文件,我想给它以下路径:
Contents/FrameClasses/Data/Datafiles/MYFILE.txt
我用来制作文件夹的是:
File MYFILE = new File("Contents/FrameClasses/Data/Datafiles/MYFILE.txt");
MYFILE.getParentFile().mkdir();
try{
if(MYFILE.createNewFile()){
//do stuff here
}
}catch (Exception e){
//do stuff with the exception...
}
每当我这样做的时候,我都会得到一个错误,说:
java.io.IOException:没有这样的文件或目录
如果我将src/
添加到路径的开头并使其如下所示,则该错误已修复:
src/Contents/FrameClasses/Data/Datafiles/MYFILE.txt
但是src/
不是我项目的一部分,因为所有内容都包含在我制作的目录中。当我构建.jar
文件时,如果我将src/
添加到路径中后运行它,它会给出相同的错误
创建此文件的正确方法是什么?
PS:我也尝试过使用这样一个较短的路径:Datafiles/MYFILE.txt
,但没有成功。此外,我用来制作文件的类与原始路径中显示的数据文件一起包含在文件夹中。简短回答:您不应该将文件写入类内文件夹。
在运行时中,我们将使用jar文件运行Java程序,而jar本质上是一个zip文件,您不能像这样通过路径直接写入自己的运行时jar。如果您使用jar文件运行此操作,它可能会引发如下异常:
java.io.IOException: The filename, directory name, or volume label syntax is incorrect
以及:
src/Contents/FrameClasses/Data/Datafiles/MYFILE.txt
此路径有效,我认为您正在使用IDE或其他方式运行,但没有使用发布的jar文件运行
File MYFILE=new File(this.getClass().getResource(“/”).getPath()+“Contents/FrameClasses/Data/Datafiles/MYFILE.txt”)
在没有jar的情况下运行时应该可以工作
尝试从“/”对其进行完全路径设置,您当前使用的是运行代码的相对路径。请看@ScaryWombat,这样它可以工作,但我试图实现的是在项目中创建文本文件,即使它成为.jar
文件。因此.jar
文件可以在任何地方,这就是为什么您需要使用完整路径。您无法在运行时在jar文件中创建文件。那就在外面了为什么?项目在运行时不会在那里。您应该考虑创建与JAR位置、用户主目录或临时目录等相关的文件。