Запись в файл, где находится выходной файл? - PullRequest
3 голосов
/ 18 августа 2010
        FileWriter outFile = null;
        try {
            outFile = new FileWriter("member.txt");
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
out.println("test");

Выполнение этой команды, где находится member.txt?Я использую Windows Vista.UAC включен, поэтому, когда я запускаю его, я не думаю, что он пишет в текстовый файл.Однако текстовый файл создан, но он пуст.

Ответы [ 5 ]

6 голосов
/ 18 августа 2010

Относительные пути в Java IO относительно текущего рабочего каталога.В Eclipse это обычно корневой каталог проекта.Вы также пишете в out вместо outFile.Вот небольшая перезапись:

    File file = new File("member.txt");
    FileWriter writer = null;
    try {
        writer = new FileWriter(file);
        writer.write("test");
    } catch (IOException e) {
        e.printStackTrace(); // I'd rather declare method with throws IOException and omit this catch.
    } finally {
        if (writer != null) try { writer.close(); } catch (IOException ignore) {}
    }
    System.out.printf("File is located at %s%n", file.getAbsolutePath());

Закрытие обязательно, поскольку оно сбрасывает записанные данные в файл и снимает блокировку файла.

Нет необходимости говорить, что использование относительных путей - плохая практикав Java IO.Если вы можете, лучше использовать путь к классам.ClassLoader#getResource(), getResourceAsStream() и т. Д.

4 голосов
/ 18 августа 2010

Если файл успешно создан (исключение не возникает), он находится в текущем рабочем каталоге.

2 голосов
/ 18 августа 2010

Для класса Java, который вы выполняете, щелкните правой кнопкой мыши по файлу и перейдите к «Run As -> Run Configurations ...»

На этом экране перейдите на вкладку «Аргументы». В нижней части экрана найдите параметр «Рабочий каталог». Это каталог, из которого будет работать ваш класс Java.

В вашем примере вы создаете "member.txt" в текущем каталоге, поэтому он будет отображаться в любом месте, где установлен ваш "Рабочий каталог".

0 голосов
/ 18 августа 2010

При запуске из Eclipse текущим рабочим каталогом будет базовый каталог вашего проекта (просмотрите свойства вашего проекта, чтобы найти это местоположение на диске). Вы сможете увидеть файл в Project Explorer, обновив проект (нажмите на проект и нажмите F5 ).

Вы можете указать альтернативный рабочий каталог в диалоговом окне «Выполнить конфигурации» на вкладке «Аргументы».

0 голосов
/ 18 августа 2010

Это зависит от используемой вами IDE.Обычно он попадает в тот же каталог, в котором находится файл .java.Я думаю, что программы, такие как Eclipse и Netbeans, могут поместить его в другой каталог.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...