Java 如何在特定项目目录文件夹中创建文件

Java 如何在特定项目目录文件夹中创建文件,java,Java,我想在textfolder中创建一个文件,但无法在该文件夹中创建该文件。假设已经创建了“textfolder” 例如,如果文件名为“\invoices\aFile.txt”,则位置的输出为“\textfolder”,这意味着您的folderDir指向\textfolder\invoices\aFile.txt。我在这里看到两个问题 folderDir指向的是文件,而不是文件夹或目录。考虑重命名为目标文件或某物。 缺少中间文件夹,因为发票文件夹不是由命令file.createNewFile()创

我想在textfolder中创建一个文件,但无法在该文件夹中创建该文件。假设已经创建了“textfolder”

例如,如果文件名为“\invoices\aFile.txt”,则位置的输出为“\textfolder”

,这意味着您的
folderDir
指向
\textfolder\invoices\aFile.txt
。我在这里看到两个问题

  • folderDir
    指向的是文件,而不是文件夹或目录。考虑重命名为目标文件或某物。
  • 缺少中间文件夹,因为
    发票
    文件夹不是由命令
    file.createNewFile()
    创建的,也不创建任何中间文件夹。使用
    Files.createDirectories(hostingFolder)
    为aFile.txt创建托管文件夹,其中
    hostingFolder
    指向
    \textfolder\invoices\
  • 更新
    根据您的描述,尝试上面的代码。请注意,对于
    File File=new File(位置+文件名,“UTF-8”)
    ,正在尝试创建指向
    \textfolder\aFile.txt\UTF-8
    的文件,即“UTF-8”被视为路径名的一部分。如果第一个参数是字符串,Java将使用此构造函数
    公共文件(字符串父项,字符串子项)

    请以文本形式发布您的代码,以便于调查、复制并最终获得更好的帮助。将您的代码作为文本而不是图像复制到问题中。请参阅。您的文件名是。\textfolder\aFile.txt位置是。\textfolder\,因此您创建了两个文本文件夹。我意识到我使用了
    文件。createDirectories(invoice)
    而不是
    文件。createDirectories(textfolder)
    ,这是一个错误。但是,我删除了
    currDir
    folderDir
    ,并将命令更改为
    File File File=new File(位置,“UTF-8”)
    。该文件仍未添加到文件夹中。对此,是否有任何解决方案?请尝试我的更新代码。
    private static final String Location = "." + File.separator + "textfolder";
    public static boolean save(String filename) {
        try {
            File file = new File(Location,filename);
            //create folder if not exist
            if (!Files.exists(Paths.get(Location))) {
                Files.createDirectories(Paths.get(Location));
            }
    
            if (!file.exists()) {
                file.createNewFile();
            }
    
            PrintWriter writer = new PrintWriter(file);
            writer.close();
        } catch (IOException e) {
            e.printStackTrace();
            return false;
        }
        return true;
    }
    
    public static void main(String[] args){
        save("aFile.txt");
    
    }