ByteStreams :
Со страницы документации Oracle относительно потоков байтов :
Программы используют потоки байтов для выполнения ввода и вывода8-битные байты.Все классы потока байтов происходят от InputStream
и OutputStream
.
Когда использовать:
Потоки байтов должны использоваться только для самых примитивных операций ввода-вывода
Когда не использовать:
Вы не должны использовать поток байтов для чтения Потоки символов
Например, для чтения текстового файла
Потоки символов:
Со страницы документации оракула о символьных потоках :
Платформа Java хранит символьные значения с использованием соглашений Unicode.Ввод / вывод потока символов автоматически переводит этот внутренний формат в локальный набор символов и из него.
Все классы потока символов происходят от Reader
и Writer
.
Потоки символовчасто являются «обертками» для байтовых потоков.Символьный поток использует байтовый поток для выполнения физического ввода-вывода, тогда как символьный поток обрабатывает перевод между символами и байтами.
Существует два универсальных байтово-символических «моста» потока: InputStreamReader
и OutputStreamWriter
.
Когда использовать:
Для чтения символьных потоков из Socket
или File
символов
В итоге :
Поток байтов читает и записывает байт за раз.Мы должны избегать использования потока байтов при работе с более сложными данными.
Символьный поток и другие доступные потоки должны использоваться для обработки сложных данных.