Java Урок 54: ПОТОКИ ВВОДА-ВЫВОДА, цепные потоки

В java есть “Потоки для соединений” и “Цепные потоки”.

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

Потоки для соединений представляют собой подключение к источнику или пункту назначения (файлу, массиву, сокету и т.д.). При передаче данных через потоки ввода-вывода обязательно должен быть один поток для соединения.
Потоки для соединения обычно являются низкоуровневыми. Данные по ним передаются обычно в байтах. Иногда достаточно одного потока для соединения, однако в большинстве случаев нам понадобятся цепные потоки.
Чтобы записать дробные данные, строки, объекты, или чтобы буферизировать данные нам без помощи цепных потоков не обойтись. В отличии от потоков для соединения цепных потоков может быть несколько,
а может не быть вообще.

К цепным потокам можно отнести:
BufferedOutputStream
BufferedInputStream
DataOutputStream
DataInputStream
ObjectOutputStream
ObjectInputStream

Пример использования цепного потока:

public class Main {
   public static void main(String[] args) throws IOException {

      File file1 = new File("file1.txt");

      // открывается поток для соединения
      FileOutputStream outputSream1 = new FileOutputStream(file1);

      // открывается цепной поток для передачи boolean данных
      DataOutputStream dataOutputSream1 = new DataOutputStream(outputSream1);
      for (int i = 0; i < 10; i++) {
         boolean b = i % 2 == 0 ? false : true;
         dataOutputSream1.writeBoolean(b);
      }
      FileInputStream inputSream1 = new FileInputStream(file1);
      DataInputStream dataInputSream1 = new DataInputStream(inputSream1);
      for (int i = 0; i < 10; i++) {
         System.out.println(dataInputSream1.readBoolean());
      }
      dataOutputSream1.close();
      dataInputSream1.close();
   }
}

Вывод программы:
false
true
false
true
false
true
false
true
false
true

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


knopkisoc

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