- •4.1.1. Потоки ввода-вывода
- •4.1.2. Класс IOException
- •4.2.1. Класс InputStream
- •4.2.2. Класс OutputStream
- •4.3. Символьный ввод-вывод
- •4.3.1. Класс Reader
- •4.3.2. Класс Writer
- •4.4.1. Класс InputStreamReader
- •4.4.2. Класс OutputStreamWriter
- •4.5.1. Класс BufferedReader
- •4.5.2. Класс BufferedWriter
- •4.5.3. Класс PrintStream
- •4.6.1. Классы для файлового ввода-вывода
- •4.6.2. Копирование бинарного файла
- •4.6.3. Обработка текстового файла
- •4.7.1. Класс File
- •4.7.2. Пример работы с файловой системой
Лекция 4.Ввод-вывод
4.1.Организацияввода-вывода вJava
4.1.1. Потоки ввода-вывода
Ввод-вывод в Java организован при помощи потоков. Потоки реализуются как классы, являющиеся абстракцией устройства ввода-вывода. Поток может представлять дисковый файл, другое устройство ввода-вывода, буфер в памяти, сетевое соединение. Потоки можно объединять в цепочки и очереди. Поток может буферизовать, фильтровать, шифровать, сжимать и другим образом изменять проходящие через него данные.
Классы, отвечающие за стандартный ввод-вывод в Java, находятся в пакете java.io. Чтобы использовать эти классы, необходимо импортировать пакет java.io:
import java.io.*;
или только необходимый класс, например для импорта класса InputStream:
import java.io.InputStream;
Ввод-вывод в Java основан на базовых абстрактных классах InputStream, OutputStream, Reader и Writer. Первые два класса определяют байтовый ввод-вывод, другие два – символьный. Все другие потоки являются потомками этих четырёх. Таким образом, все потоки ввода-вывода разделены на две группы: потоки, работающие с бинарными данными, и потоки, работающие с текстовыми символами.
Таблица 4.1. Базовые классы ввода-вывода в Java.
|
Байтовый |
Классы-переходники |
Символьный |
Ввод |
InputStream |
InputStreamReader |
Reader |
Вывод |
OutputStream |
OutputStreamWriter |
Writer |
4.1.2. Класс IOException
Класс IOException является базовым классом для всех исключений, связанных с вводом-выводом. Некоторые подклассы класса IOException:
•EOFException – генерируется, если достигнут конец файла.
•FileNotFoundException – генерируется в случае, если файл не найден.
•UnsupportedEncodingException – генерируется, если требуемая кодировка не поддерживается.
4.2.Байтовыйввод-вывод
4.2.1. Класс InputStream
Класс InputStream отвечает за ввод бинарных данных. Поток создаётся вызовом конструктора InputStream(). После окончания работы с потоком его необходимо закрыть с помощью метода close().