Как се записва в Java файл

Когато пишете програми на Java, рано или късно ще е необходимо да се чете и записва информация във файл. За тази цел езикът предоставя следните инструменти за входни и изходни данни: Writer класа за писане и Reader за четене. Наследниците на тези класове са класовете FileWriter и FileReader, удобни за работа директно с файлове.

Прост пример за запис в файл в Java

Преди да създадете входната точка в програмата, трябва да предпишете импортиране (необходимите класове са в библиотеките на java.io *, ще напишем звездичка, тъй като в бъдеще ще са необходими допълнителни класове от това библиотеки). Импортирането в редактора трябва да изглежда така:


import java.io. *;

Тогава вътре в произволната класа пишем основния метод, който от своя страна създаваме екземпляр на класа FileWriter и го записваме на записващия писател:

)

Когато стартирате тази програма, файлът text.txt ще бъде създаден в основата на проекта. За да напишете нещо в този файл, трябва да се обърнете към метода write () Writer, методът write () приема аргумента, да напише нещо там:

writer.write ("пример за запис в файл в Java");

Когато става въпрос за въвеждането на извличане на данни, е необходимо също да се вземат предвид изключителните ситуации, защото не винаги знаем какво ще бъде в тези данни. Компилаторът няма да пропусне този код без специалния дизайн хвърля Exception, който искате да вмъкнете в подписа на основния метод. Също така трябва да се погрижите да излезете от нишката, след метода write (), трябва да затворите потока, използвайки метода close (). кактрябва да изглежда като кода на този етап, показан на картинката по-долу.

& lt; script async = "//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js">
& lt ;! - fb_336x280_2 - & gt;

& lt; script & gt; (adsbygoogle = window.adsbygoogle || []). push ({});

Когато стартирате програмата в основата на проекта, ще се появи файл text.txt, в който ще бъде записан "пример за запис в файл в Java". Въпреки това, този пример е само за информационни цели, така че да може да се прилага в "борба" условия, е необходимо да се проведе малък рефакторинг.

Рефакториране

Първото нещо, което трябва да се направи, е да се постави кодът, отговорен за въвеждането на изхода на данните, в дизайна на try-catch (по-лесно е да се управляват изключенията и да се прилагат техните изключения). След това трябва да създадете отделна променлива с File type, където можете да напишете адреса и името на файла (това е удобно, тъй като често се налага да работите с множество файлове, те се поставят в отделни променливи и се обработват от цикъл, и едва след това получената променлива се въвежда като параметър във FileWriter ).

Също така е добра практика да се използват буфери, когато се работи с I /O потоци (класът FileWriter е достъпен на устройството, ако голяма част от него може да изисква много памет, така че е разумно да се манипулират данните, използвайки буфера), за това се използва буферният клас. и FileWriter се записва в скоби като параметър. Методът flush () се извиква за освобождаване на буфера, той може да бъде зададен преди метода close (), сега кодът ще изглежда като този по-долу.

Как да напишем Java файл в последователност

Всеки път, когато компилирате този код в конзолата, ще презапише едини същото вписване. Как да направите нова информация, за да стартирате програмата във файл? За да направите това, първо трябва да напишете истинската ключова дума вторият параметър при създаване на FileWriter:


& lt; script type = "text /javascript" & gt;
може да blockSettings2 = {blockId: "R-A-70350-2", renderTo: "yandex_rtb_R-A-70350-2", async: 0};

ако (document.cookie.indexOf ("abmatch ="))> = 0) {
blockSettings2 = {blockId: "RA-70350-2", renderTo: "yandex_rtb_R-A-70350- 2 ", statId: 70350async:! 0};
}

Функция (a, b, c, d, e) {a [c] = a [c] || [], a [c] .push (функция () {Ya .Context.AdvManager.render (blockSettings2)}), e = b.getElementsByTagName ("скрипт") , d = b.createElement ("скрипт"), d.type = "text /javascript", d.src = "//an.yandex.ru/system/context.js", d.async =! 0e.parentNode.insertBefore (d, e)} (това, този.документ, "yandexContextAsyncCallbacks");

BufferedWriter writer = нов BufferedWriter (нов FileWriter (myFile, true));

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

Пример за писане на пример за запис на Java в пример за писане на Java Java

Един лесен начин за преместване на низ е да се добави оператор /n към аргумент за метод на метода. write (), но този метод няма да работи в различни операционни системи. За да запишете файла последователно на различни платформи, трябва да използвате системния метод line.separator. Следният пример показва как да напишем този метод към променливата lineSeparator, която след това може да се използва в аргумента string на метода write ():

String lineSeparator = System.getProperty ("line.separator");​​Накрая, кодът ще изглежда като този по-долу.
Резултатът от това изпълнение на кода е, както следва: във файла text.txt, когато програмата се задейства три пъти, редовете "пример за писане наJava ".

Свързани публикации