Looking for java Keywords? Try Ask4Keywords

Java Language Обтекание потоков ввода / вывода


пример

OutputStream и InputStream имеют много разных классов, каждый из которых обладает уникальной функциональностью. Обертывая поток вокруг другого, вы получаете функциональность обоих потоков.

Вы можете обтекать поток сколько угодно раз, просто обратите внимание на порядок.

Полезные комбинации

Запись символов в файл при использовании буфера

File myFile = new File("targetFile.txt");
PrintWriter writer = new PrintWriter(new BufferedOutputStream(new FileOutputStream(myFile)));

Сжатие и шифрование данных перед записью в файл при использовании буфера

Cipher cipher = ... // Initialize cipher
File myFile = new File("targetFile.enc");
BufferedOutputStream outputStream = new BufferedOutputStream(new DeflaterOutputStream(new CipherOutputStream(new FileOutputStream(myFile), cipher)));

Список оберток потока ввода / вывода

обертка Описание
BufferedOutputStream / BufferedInputStream В то время как OutputStream записывает данные по одному байту за один раз, BufferedOutputStream записывает данные в куски. Это уменьшает количество системных вызовов, что повышает производительность.
DeflaterOutputStream / DeflaterInputStream Выполняет сжатие данных.
InflaterOutputStream / InflaterInputStream Выполняет декомпрессию данных.
CipherOutputStream / CipherInputStream Шифрует / расшифровывает данные.
DigestOutputStream / DigestInputStream Генерирует дайджест сообщений для проверки целостности данных.
CheckedOutputStream / CheckedInputStream Создает CheckSum. CheckSum - это более тривиальная версия Message Digest.
DataOutputStream / DataInputStream Позволяет писать примитивные типы данных и строки. Предназначен для написания байтов. Независимая платформа.
PrintStream Позволяет писать примитивные типы данных и строки. Предназначен для написания байтов. Платформа зависит.
OutputStreamWriter Преобразует OutputStream в Writer. OutputStream имеет дело с байтами, в то время как Writers имеет дело с символами
PrintWriter Автоматически вызывает OutputStreamWriter. Позволяет писать примитивные типы данных и строки. Строго для написания символов и лучше всего писать символы