Java Урок 56: ПОТОКИ ВВОДА-ВЫВОДА, передача текста

Символьные потоки также определены в двух иерархиях классов. На их вершине находятся два абстрактных класса: Reader и Writer. Эти абстрактные классы управляют потоками символов Unicode. В языке Java предусмотрено несколько конкретных подклассов для каждого из них.

Скачать исходники для статьи можно ниже

Вот некоторые из них:

BufferedReader — Буферизированный входной символьный поток — цепной поток
BufferedWriter — Буферизированный выходной символьный поток — цепной поток
FileReader — Входной поток, читающий файл — поток для соединения
FileWriter — Выходной поток, пишущий в файл — поток для соединения
Reader — Абстрактный класс, описывающий символьный ввод
Writer — Абстрактный класс, описывающий символьный вывод

Абстрактные классы Reader и Writer определяют несколько ключевых методов, которые реализуют другие потоковые классы.
Два наиболее важных — это методы read() и write(), которые, соответственно читают и пишут символьные данные.

Эти методы переопределяются в производных потоковых классах.

Пример использования FileWriter и FileReader:

public class Main {
   public static void main(String[] args) throws IOException {
      File file = new File("file.txt");
      FileWriter fWriter = new FileWriter(file);
      // создание символьного потока

      fWriter.write("Привет, дружище");
      // запись файла

      fWriter.close();
      // закрытие потока fWriter

      FileReader fReader = new FileReader(file);
      int g = fReader.read();
      while (g != -1) {
         System.out.print((char) g);
         g = fReader.read();
         // чтение символа из файла
      }
      fReader.close();
   }
}

Вывод программы:
Привет, дружище

Пример использования потоков для соединения FileWriter и FileReader и цепных потоков BufferedWriter и BufferedReader:

public class Main {
   public static void main(String[] args) throws IOException {
      File file = new File("file.txt");
      FileWriter fWriter = new FileWriter(file);
      // создание символьного потока

      BufferedWriter bufferedWriter = new BufferedWriter(fWriter);
      // создание цепного буферизированного потока

      bufferedWriter.write("Привет, дружище");
      // закрытие потока bufferedWriter

      bufferedWriter.close();
      // закрытие потока bufferedWriter приводит к автоматическому 
      // закрытию потока fWriter

      FileReader fReader = new FileReader(file);
      BufferedReader bufferedReader = new BufferedReader(fReader);
      String s = bufferedReader.readLine();
      // метод readLine() читает строку целиком

      while (s != null) {
         System.out.print(s);
         s = bufferedReader.readLine();
      }
      bufferedReader.close();
   }
}

Вывод программы:
Привет, дружище

Введите свой email адрес для того, чтобы подписаться на мой блог:


knopkisoc

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *