РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
866 of 1163 menu

Класс FileWriter

Класс FileWriter из пакета java.io используется для записи символьных данных в файл. Он является удобной надстройкой над OutputStreamWriter и позволяет записывать строки и отдельные символы напрямую в файл, не прибегая к ручному кодированию в байты. В первом параметре конструктора мы передаем путь к файлу или объект File, во второй параметр (необязательный) можно передать флаг append - если он равен true, данные будут дописываться в конец файла, а не перезаписывать его. Также существует конструктор, принимающий объект Charset для явного указания кодировки.

Синтаксис

new FileWriter(String fileName) new FileWriter(String fileName, boolean append) new FileWriter(File file) new FileWriter(File file, boolean append) new FileWriter(String fileName, Charset charset) new FileWriter(String fileName, Charset charset, boolean append)

Пример

Давайте запишем строку "abcde" в файл "test.txt" и затем прочитаем его содержимое:

import java.io.FileWriter; import java.io.FileReader; import java.io.IOException; public class Main { public static void main(String[] args) { try (FileWriter writer = new FileWriter("test.txt")) { writer.write("abcde"); } catch (IOException e) { System.out.println("Error: " + e.getMessage()); } try (FileReader reader = new FileReader("test.txt")) { int ch; StringBuilder res = new StringBuilder(); while ((ch = reader.read()) != -1) { res.append((char) ch); } System.out.println(res.toString()); } catch (IOException e) { System.out.println("Error: " + e.getMessage()); } } }

Результат выполнения кода:

"abcde"

Пример

Давайте допишем строку "12345" в конец существующего файла, передав вторым параметром true:

import java.io.FileWriter; import java.io.FileReader; import java.io.IOException; public class Main { public static void main(String[] args) { try (FileWriter writer = new FileWriter("test.txt", true)) { writer.write("12345"); } catch (IOException e) { System.out.println("Error: " + e.getMessage()); } try (FileReader reader = new FileReader("test.txt")) { int ch; StringBuilder res = new StringBuilder(); while ((ch = reader.read()) != -1) { res.append((char) ch); } System.out.println(res.toString()); } catch (IOException e) { System.out.println("Error: " + e.getMessage()); } } }

Результат выполнения кода:

"abcde12345"

Пример

Давайте запишем строку с явным указанием кодировки UTF_8:

import java.io.FileWriter; import java.io.FileReader; import java.io.IOException; import java.nio.charset.StandardCharsets; public class Main { public static void main(String[] args) { try (FileWriter writer = new FileWriter( "test.txt", StandardCharsets.UTF_8)) { writer.write("abcde"); } catch (IOException e) { System.out.println("Error: " + e.getMessage()); } try (FileReader reader = new FileReader( "test.txt", StandardCharsets.UTF_8)) { int ch; StringBuilder res = new StringBuilder(); while ((ch = reader.read()) != -1) { res.append((char) ch); } System.out.println(res.toString()); } catch (IOException e) { System.out.println("Error: " + e.getMessage()); } } }

Результат выполнения кода:

"abcde"

Смотрите также

  • класс Writer,
    который является родительским классом для FileWriter
  • класс FileReader,
    который используется для чтения символов из файла
  • класс BufferedWriter,
    который добавляет буферизацию при записи
  • класс StandardCharsets,
    который содержит стандартные кодировки
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить