Запись строки в файл на 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. Но не всегда есть возможность подключить к проекту новую зависимость.
Спасибо за внимание!