Java创建文件和目录(如果需要)

Java创建文件和目录(如果需要),java,file,Java,File,我想创建一个文件(在工作区之外),这样打开我的程序的每个人都有自己的文本文件 目前,我必须执行以下代码: private static final File m_dataFile = new File("C:\\temp\\MainPlayersLoginData.txt"); private static FileWriter writer; private static Scanner reader; public static void setMainPlayersL

我想创建一个文件(在工作区之外),这样打开我的程序的每个人都有自己的文本文件

目前,我必须执行以下代码:

private static final File m_dataFile = new File("C:\\temp\\MainPlayersLoginData.txt");
private static FileWriter writer;
private static Scanner reader;

public static void setMainPlayersLoginData(String name, String password) {
    try {
        if (!m_dataFile.exists()) {
            createDirectory();
        }
        writer = new FileWriter(m_dataFile);
        writer.write(name + "\n" + password);
        writer.close();
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        try {
            if (writer != null)
                writer.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

private static void createDirectory() {
    System.out.println("creating directory: " + m_dataFile.getName());
    boolean result = false;

    try {
        m_dataFile.mkdirs();
        result = true;
    } catch (SecurityException se) {
    }
    if (result) {
        System.out.println("DIR created");
    }
}
有了这段代码,程序会按计划创建一个临时文件夹,但会在其中创建一个名为“mainplayersloginda.txt”的文件夹,而不是一个文本文件。此外,在初始化FileWriter时,我会收到一个FileNotFoundException,并显示消息“Access denied”

我尝试使用m_datafile.mkdir()而不是m_datafile.mkdirs(),但这次我得到一个FileNotFoundException,消息是“系统找不到指定的路径”,并且没有创建文件夹temp


编辑:如果我自己创建文件夹和文本文件,一切正常。

如果要将整个路径创建为目录,请尝试
m\u dataFile.getParentFile().mkdirs()
。并将
result
设置为其返回值,而不是
true
。它不会引发异常,除非您安装了
securityManager
。@Marqueisoflorne工作得很好,谢谢:)如果要将整个路径创建为目录,请尝试
m_dataFile.getParentFile().mkdirs()
。并将
result
设置为其返回值,而不是
true
。它不会抛出异常,除非您安装了
securityManager
。@Marqueisoflorne工作正常,谢谢:)