Подтвердить что ты не робот

Java - как я могу записать файл в указанный каталог

Я хочу записать файл result.txt в конкретный каталог на моей машине (Z:\results to exact). Как мне найти каталог в BufferedWriter/FileWriter?

В настоящее время он записывает файл успешно, но в каталог, где находится мой исходный код. Благодаря

    public void writefile(){

    try{
        Writer output = null;
        File file = new File("results.txt");
        output = new BufferedWriter(new FileWriter(file));

        for(int i=0; i<100; i++){
           //CODE TO FETCH RESULTS AND WRITE FILE
        }

        output.close();
        System.out.println("File has been written");

    }catch(Exception e){
        System.out.println("Could not create file");
    }
}
4b9b3361

Ответ 1

Использование:

File file = new File("Z:\\results\\results.txt");

Вам нужно удвоить обратную косую черту в Windows, потому что сам символ обратной косой черты - это escape в строках строки Java.

Для POSIX системы, такой как Linux, просто используйте путь по умолчанию, не удваивая косую черту. это связано с тем, что прямая косая черта не является escape-символом в Java.

File file = new File("/home/userName/Documents/results.txt");

Ответ 2

Вы должны использовать вспомогательный конструктор для File, чтобы указать каталог, в котором он должен быть символически создан. Это важно, потому что ответы, которые говорят о создании файла путем добавления имени каталога к исходному имени, не являются такими же независимыми от системы, как этот метод.

Пример кода:

String dirName = /* something to pull specified dir from input */;

String fileName = "test.txt";
File dir = new File (dirName);
File actualFile = new File (dir, fileName);

/* rest is the same */

Надеюсь, что это поможет.

Ответ 3

Просто поместите полное расположение каталога в объект File.

File file = new File("z:\\results.txt");

Ответ 4

Лучшая практика - использовать File.separator в путях.