Запись строки в файл на Java

Написано 11 Июнь, 2013 в категории Java,Разработка ПО

Всем привет. Статья из серии "чтобы не забыть".

Все мы проводим долгие часы за отладкой кода. Отладка бывает приятной (если есть логгер) и не очень (когда логгер, по каким-то причинам, подключить не удается).
Когда логгер подключить не получается, то в игру вступают различные дедовские методы, вроде вывода в системный поток или в файл.

Да простят меня боги отладки, но иногда приходится делать вот так:

FileWriter writeFile = null;
try {
    File logFile = new File("error.txt");
    writeFile = new FileWriter(logFile);
    writeFile.write("text\n");
} catch (IOException e) {
    e.printStackTrace();
} finally {
    if(writeFile != null) {
        try {
            writeFile.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

Данный код создает файл "error.txt" и записывает туда строку. Чтобы каждый раз не ломать голову куда будет записан файл - я указываю абсолютный путь к нему. Кстати, это хороший способ не нарваться на ограничение на запись в директорию. При вызове данного кода файл будет создаваться/пересоздаваться с новой строкой.

Если нам нужно дописывать текст в файл, то делаем так:

FileWriter writeFile = null;
try {
    File logFile = new File("error.txt");
    writeFile = new FileWriter(logFile);
    writeFile.append("text\n");
} catch (IOException e) {
    e.printStackTrace();
} finally {
    if(writeFile != null) {
        try {
            writeFile.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

Примеры достаточно многословные, но такова цена за использование "чистой" Java.

Конечно, все упрощается, если использовать специальные методы, например, из Apache Commons. Но не всегда есть возможность подключить к проекту новую зависимость.

Спасибо за внимание!