Як здійснити запис у файл Java
Простий приклад запису у файл в Java
Перед тим як створювати точку входу в програму, потрібно прописати імпорти (необхідні класи знаходяться в бібліотеки java.io*, пропишемо зірочку, т. к. в подальшому знадобляться ще класи з цієї бібліотеки). Імпорт в редакторі повинен мати такий вигляд: import java.io.*;
Потім всередині довільного класу пишемо метод main, в якому в свою чергу створюємо екземпляр класу FileWriter і записуємо його в змінну write:
FileWriter writer = new FileWriter("text.txt");
При запуску цієї програми буде створений файл text.txt в корені проекту. Для того щоб записати що-небудь в цей файл, потрібно звернутися до методу write() класу Writer, метод write() приймає в якості аргументу рядок, напишемо туди що-небудь:
writer.write("приклад запису у файл в Java");
При роботі з введенням виведенням даних необхідно також враховувати виняткові ситуації з причини того, що ми не завжди знаємо, що буде в цих даних. Компілятор не пропустить цей код без спеціальної конструкції throws Exception, яку потрібно вставити в сигнатурі методу main. Також потрібно подбати про вихід з потоку, після методу write() потрібно закрити потік за допомогою методу close(). Як повинен виглядати код на цьому етапі, показано на малюнку нижче.
<!-- fb_336x280_2 -->
<script> (adsbygoogle = window.adsbygoogle ||[]).push({});
При запуску програми в корені проекту з'явиться файл text.txt, в якому буде написано "приклад запису у файл в Java". Однак цей приклад годиться лише для ознайомлювальних цілей, щоб застосувати його в "бойових" умовах потрібно провести невеликий рефакторинг.
Рефакторинг
Перше, що потрібно зробити, - укласти код, що відповідає за введення виведення даних в конструкцію try - catch (так легше управляти винятками і застосовувати свої винятки). Потім потрібно створити окрему змінну з типом File, куди можна записати адресу та назву файлу (це зручно, т. к. часто потрібно працювати з декількома файлами, їх поміщають в окремі змінні і обробляють циклом, і тільки потім результуюча змінна вставляється як параметр в FileWriter).
Також хорошою практикою при роботі з потоками вводу/виводу вважається використання буфера (клас FileWriter звертається до диска, якщо багато це може зажадати багато пам'яті, тому розумно маніпулювати даними, використовуючи буфер), для цього застосовується клас BufferedWriter, а FileWriter записується в дужках в якості параметра. Для звільнення буфера викликається метод flush(), його можна прописати перед методом close(), тепер код буде виглядати так, як показано нижче.
Як записати Java в файл порядково
Кожен раз при компіляції даного коду в консолі буде перезаписуватися одна і та ж запис. Як зробити так, щоб при запуску програми в файл записувалася нова інформація порядково? Для цього в першу чергу потрібно написати ключове слово true другим параметром при створенні FileWriter:
<script type="text/jаvascript">
var blockSettings2 = {blockId:"R-A-70350-2",renderTo:"yandex_rtb_R-A-70350-2",async:!0};
if(document.cookie.indexOf("abmatch=") >= 0){
blockSettings2 = {blockId:"R-A-70350-2",renderTo:"yandex_rtb_R-A-70350-2",statId:70350async:!0};
}
!function(a,b,c,d,e){a[c]=a[c]||[],a[c].push(function(){Ya.Context.AdvManager.render(blockSettings2)}),e=b.getElementsByTagName("script")[0],d=b.createElement("script"),d.type="text/jаvascript",d.src="//an.yandex.ru/system/context.js",d.async=!0e.parentNode.insertBefore(d,e)}(this,this.document,"yandexContextAsyncCallbacks");
BufferedWriter writer = new BufferedWriter(new FileWriter(myFile, true));
Кожен раз при компіляції програма буде записувати в файл рядок, яка знаходиться в методі write(), без перенесення на наступний рядок. У нашому випадку вийшло так:
приклад запису в Java приклад запису в Java приклад запису в Java
Простий спосіб переносу рядка - це додавання оператора /n до строковому аргументу методу write(), однак такий спосіб не буде працювати в різних операційних системах. Для того щоб записати файл порядково на різних платформах, потрібно використовувати метод line.separator класу System. У наступному прикладі видно, як цей метод записати в змінну lineSeparator, яку потім можна використовувати у строковому аргумент методу write():
String lineSeparator = System.getProperty("line.separator");
Остаточно код буде виглядати так, як показано нижче. Результат виконання цього коду буде наступним: у файлі text.txt при триразовому запуску програми з'являться рядки "приклад запису в Java".