Галерея диаграмм связей Java IO (третье предварительное обучение Лань Сюя)
Представлен общий поток java_io. Поток ввода-вывода Java представляет собой серию классов и интерфейсов, используемых для обработки операций ввода и вывода в приложениях Java.
Отредактировано в 2024-04-06 17:07:56-JavaIO
- Введение
- Определение: используйте Java для выполнения операций ввода и вывода.
- Цель: доступ к различным источникам и местам назначения данных.
- Категория: java.io и java.nio.
- Классификация потоков
- Входной поток против выходного потока
- Поток байтов против потока символов
- Поток узлов и поток обработки
- Другие: поток преобразования, поток буфера, поток объектов.
-Четыре основных потока
- поток байтов
-Выходной поток
Три метода в классе
писать
public void write(byte b[], int off, int len) выдает IOException. Это означает вывод байтов длины len, начиная с off, в массиве байтов b во внешнюю целевую область.
румянец
Смысл этого метода состоит в том, чтобы заставить данные в буфере выводиться на целевое устройство и очистить буфер, чтобы избежать сохранения данных. Вообще говоря, очистку следует выполнить в конце вывода, чтобы гарантировать, что не останется остаточных данных. в буфере.
закрывать
Смысл этого метода заключается в закрытии выходного потока. После закрытия выходного потока поток бесполезен и ничего нельзя сделать.
Сначала создайте объект Out... с параметром в виде файла. Затем используйте метод записи этого параметра. Параметр представляет собой массив байтов. Массив байтов преобразуется из объекта String с помощью метода getByte().
-Входной поток
читать
public Abstract int read() выдает IOException означает чтение байта и возврат переменной формы int прочитанного байта.
public int read(byte b[], int off, int len) выбрасывает IOException, а public int read(byte b[]) выбрасывает IOException, имеют почти то же значение, что и выходной поток, упомянутый ранее, за исключением того, что этот поток вводится в поток b. array Go. Возвращаемое значение — общее количество прочитанных байтов.
пропускать
public longskip(long n) выдает IOException. Смысл этого метода состоит в том, чтобы пропустить несколько байтов из входного потока, а возвращаемое значение — это фактическое количество пропущенных байтов. Возвращаемое значение не обязательно равно n, поскольку это возможно. Для пропуска осталось недостаточно байтов. Вообще говоря, этот метод используется для пропуска ненужного содержимого во входном потоке, такого как пробелы, символы новой строки, табуляции и т. д.
доступный
закрывать
Этот метод представляет собой закрытие входного потока и освобождает системные ресурсы. Конечно, вы также можете использовать оператор try-with-resources для автоматического закрытия входного потока. Таким образом, нет необходимости явно вызывать метод close.
Повторное чтение данных
отметка
Общедоступный синхронизированный метод void mark(int readlimit) используется для размещения метки в потоке и указывает, что из этой метки можно прочитать до байтов ограничения чтения, и все метки действительны. Позиция этой метки фактически является позицией. текущего потока.
перезагрузить
Публичный синхронизированный метод сброса void() вызывает исключение IOException, которое используется для перемещения потока к предыдущей метке. Если метод mark не вызывался ранее или предел чтения был превышен, будет сообщено об исключении, что эквивалентно возможности. для извлечения потока из потока. Начиная с метки, данные длиной readlimit байт считываются повторно.
отметкаПоддерживается
Конечно, чтобы иметь возможность использовать метку и сброс, вы должны убедиться, что входной поток может поддерживаться. Поэтому вам необходимо сначала использовать метод markSupported, чтобы узнать, можно ли его использовать.
Определите класс входного потока, а затем вызовите его метод. К сожалению, указатели чтения и записи здесь не могут вернуться назад. Выходные данные должны быть преобразованы с использованием char, иначе они будут искажены.
- поток персонажей
- Писатель
Четыре метода в классе
писать
Abstract public void write(char cbuf[], int off, int len) выдает исключение IOException, его смысл состоит в том, чтобы вывести байты длины len, начиная с off, в массиве символов cbuf во внешнюю целевую область.
добавить
public Writer add(CharSequence csq, int start, int end) выдает исключение IOException, что означает добавление подстроки start~end-1 последовательности символов csq в область вывода.
Перегружено: public Writer add(char c) выдает исключение IOException, что означает добавление символа c.
румянец
закрывать
-Читатель
читать
пропускать
готовый
Этот метод используется для определения возможности чтения данных из входного потока без блокировки.
отметкаПоддерживается
отметка
перезагрузить
закрывать
Дата здесь должна иметь тип int и передавать код ASCII.
- Часто используемые потоки
- Байтовый входной поток и байтовый выходной поток
- Поток ввода символов и поток вывода символов
- Потоки печати и потоки буферизации
- поток массива байтов
-ByteArrayInputStream
-ByteArrayOutputStream
Обработать поток (обертка другого потока, параметр — поток)
- поток данных
-DataInputStream
-DataOutputStream
При использовании DataOutputStream для записи базовых типов данных они записываются в файл в двоичной форме. Поэтому, если вы откроете этот файл напрямую, вы увидите нечитаемые искаженные символы. Это связано с тем, что эти двоичные данные неправильно интерпретируются в текстовых редакторах как кодировки символов и поэтому выглядят как тарабарщина. Если вы хотите просмотреть данные в файле в читаемой форме, вы можете использовать DataInputStream для чтения этих базовых типов данных и преобразования их в другие читаемые формы. (На картинке ниже приведен пример процесса конверсии, потому что без пополнения членства можно разместить только пять картинок)
- Поток конверсии
-InputStreamReader
-OutputStreamWriter
Смысл преобразования: используйте OutputStreamWriter для преобразования потока байтов (FileOutputStream) в поток символов и укажите кодировку символов UTF-8. Используйте InputStreamReader для преобразования потока байтов (FileInputStream) в поток символов и укажите кодировку символов UTF-8. Это отражается на маршруте так же, как меняется качество воды в среднем течении, что отражает характеристики упаковки.
- Поток объектов
- ОбъектВходной поток
- ОбъектВыходнойПоток
Сериализация означает: преобразование объекта в двоичную форму.
- Поток произвольного доступа
-RandomAccessFile
- Инструкции
- Выберите подходящий тип потока
-Создать объект потока
- Используйте методы потоковой передачи
- Закройте поток, чтобы освободить ресурсы (попробуйте с ресурсом)
- Меры предосторожности
- Обработка исключений
- Проверка ввода
- Требования к сериализации
- Специальные операции для потоков произвольного доступа