На этом шаге мы приведем примеры использования потоков ввода-вывода байтов
Пример 1. Напишем программу для чтения с клавиатуры и вывод на экран.
import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; /** * Пример для работы с классами InputStream и OutputStream * */ public class Main { public static void main(String[] args) throws IOException { /*Создаем ссылку на стандартный поток ввода*/ InputStream in = System.in; /*Создаем ссылку на стандартный поток вывода*/ OutputStream out = System.out; /*Создаем буфер для хранения последовательности байтов*/ byte[] buffer = new byte[1024]; /*Пока в потоке есть что читать*/ while (in.read(buffer) != -1) { /* Прочтем очередную порцию байтов и выведем ее на экран */ out.write(buffer); } /*Заставляем данные вывести на экран из буфера*/ out.flush(); } }
Проект можно взять здесь
Рис. 1. Вывод программы
Пример 2. Напишем программу для чтения данных из файла in.txt и вывод его содержимого в файл out.txt.
import java.io.*; /** * Пример использования классов FileInputStream и FileOutputStream * */ public class Main { public static void main(String[] args) throws IOException { /*Создаем ссылку на поток работы с файлом для ввода*/ InputStream in = new FileInputStream("in.txt"); /*Создаем ссылку на поток работы с файлом для вывода*/ OutputStream out = new FileOutputStream("out.txt"); /*Создаем буфер для храения последовательности байтов*/ byte[] buffer = new byte[1024]; /*Читаем байты в буфер пока можем*/ while (in.read(buffer) != -1) { /*Записываем прочтенную последовательность байтов в поток вывода*/ out.write(buffer); } /*Сбрасываем содержимое буфера в поток вывода*/ out.flush(); System.out.println("Содержимое файла скопировано."); } }
Проект можно взять здесь
Рис. 2. Вывод программы
На следующем шаге мы начнем говорить про потоки ввода-вывода символов