Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在项目内部创建.txt文件_Java - Fatal编程技术网

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位置、用户主目录或临时目录等相关的文件。