Потоки в java можно поделить на две части:
1.Потоки для соединений.
2.Цепные потоки.
Скачать исходники для статьи можно ниже
Потоки для соединений представляют собой подключение к источнику или пункту назначения (файлу, массиву, сокету и т.д.).
При передаче данных через потоки ввода-вывода обязательно должен быть один поток для соединения. Потоки для соединения обычно являются низкоуровневыми. Данные по ним передаются обычно в байтах. Иногда достаточно одного потока для соединения, однако в большинстве
случаев нам понадобится помощь цепных потоков.
Например, к потокам для соединения можно отнести:
FileOutputStream
FileInputStream
ByteArrayOutputStream
ByteArrayInputStream
Пример использования потока для соединения:
public class Main { public static void main(String[] args) throws IOException { File file1 = new File("file1.txt"); // создается поток для соединения FileOutputStream FileOutputStream streamOut1 = new FileOutputStream(file1); // создается поток для соединения FileInputStream FileInputStream streamIn1 = new FileInputStream(file1); // запись в файл, поток FileOutputStream byte b = 99; streamOut1.write(b); b = 65; streamOut1.write(b); // чтение из файла, потока FileInputStream System.out.println(streamIn1.read()); System.out.println(streamIn1.read()); System.out.println(streamIn1.read()); streamOut1.close(); streamIn1.close(); } }
Вывод программы:
99
65
-1