Как создать файл или каталог в текущем рабочем каталоге - PullRequest
0 голосов
/ 26 сентября 2019

Я пытаюсь узнать, как создать файл / каталог в каталоге запущенного файла JAR.Я написал этот фрагмент кода, чтобы проверить свое понимание после просмотра некоторых учебных пособий и страниц со стековым потоком, таких как this и this .Однако ни одно из решений, которые я собрал, похоже, не создает никакого файла или каталога в текущем каталоге класса.Может ли кто-нибудь мне помочь?

Я работаю на MacOS, не уверенный, важна ли эта информация, но по возможности предпочту решение, которое работает в любой операционной системе.

Код

import java.io.*;
import java.nio.file.*;

class Main {
    public static void main(String [] args) {
        String firstPath = new Main().getClass()
                .getProtectionDomain()
                .getCodeSource()
                .getLocation()
                .getPath();

        System.out.println(firstPath);
        //first status
        checkStatus(new File(firstPath));

        System.out.println((new File(firstPath)).getParent());

        String dirName1 = firstPath+"data";
        File file1 = new File(dirName1);
        //2nd
        checkStatus(file1);
        System.out.println(file1.mkdir());
        //3rd
        File file2 = Paths.get(firstPath, "data").toFile();
        checkStatus(file2);
        System.out.println(file2.mkdir());



        //4th try, but without checkStatus
        try {
            String fileName = firstPath + "file.txt";
            File textFile = new File(fileName);
            System.out.println(textFile.createNewFile());
        } catch (IOException e) {
            System.out.println("fail");
        }
    }

    public static void checkStatus(File file) {
        System.out.println(file.getAbsolutePath() + " "+file.exists());
    }
}
...