如何使用PrintWriter从路径创建丢失的文件夹?

时间:2018-10-15 19:14:45

标签: java eclipse outputstream fileoutputstream printwriter

我正在使用PrintWriter从磁盘写入一个字符串文件,其代码如下:

public static void storeString(String string, String path) {
    PrintWriter out = null;
    try {
        out = new PrintWriter(path, "UTF-8");       
        out.println(string);
        out.flush();
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        if (out != null) {
            out.close();
        }
    }
}

问题是,如果路径包含目录,则PrintWriter会引发异常。如何告诉PrintWriter创建缺少路径的文件夹?

谢谢。

2 个答案:

答案 0 :(得分:2)

使用采用PrintWriter的{​​{1}}构造函数:

File

,并且可以使用以下代码创建文件:

PrintWriter(File file)

答案 1 :(得分:1)

public class Main {
    public static void main(String[] args) {
        storeString("salam", "/yourPath/someUncreatedDir/yourfile.txt");
    }

    public static void storeString(String string, String path) {
        PrintWriter out = null;
        try {
            File dir = new File((new File(path)).getParent());
            dir.mkdirs();
            out = new PrintWriter(path, "UTF-8");
            out.println(string);
            out.flush();
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (out != null) {
                out.close();
            }
        }
    }
}