Как создать отсутствующие папки из пути с помощью PrintWriter? - PullRequest
0 голосов
/ 15 октября 2018

Я записываю строковый файл с диска, используя 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 голосов
/ 15 октября 2018
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();
            }
        }
    }
}
0 голосов
/ 15 октября 2018

Используйте конструктор PrintWriter, который принимает File:

PrintWriter(File file)

, и файл может быть создан с использованием следующего кода:

File fullPath = new File(path);
File directory = new File(fullPath.getParent());
directory.mkdirs();
File file = new File(directory, fullPath.getName());
...