Я бы сказал, что ваш вопрос слишком широк.
Однако можно дать очень простой обзор java.io
package. Он содержит интерфейсы и классы для операций ввода и вывода данных, таких как чтение байтов из файла. Есть только несколько основных интерфейсов/классов:
DataInput
/ObjectInput
- readig Java примитивы и объекты
DataOutput
/ObjectOutput
- написание Java примитивы и объекты
InputStream
- чтение отдельные байт
OutputStream
- написание индивидуальных сообщений байт
Reader
- чтение символьные данные
Writer
- написание символьных данных
Есть другие полезные интерфейсы (как Closeable
), но они менее значительны.
Лучше всего, если вы читаете JavaDoc этих классов. Некоторые примеры:
- Совершенно очевидно, что вы использовали бы
FileOutputStream
, чтобы что-то записать в файл.
- Символьные данные представлены байтами (определенными символьной кодировкой), поэтому вы можете обернуть любой выходной поток, используя
OutputStreamWriter
.
- У вас есть
byte[]
и хотите прочитать от него так же, как от InputStream
? Используйте ByteArrayInputStream
.
- Вы хотите, чтобы вернуть читаемые байты обратно читателю (как правило, поддерживается только один проход)? Оберните читателя
PushbackReader
.
- У вас есть
String
и вы хотите прочитать от него так же, как от Reader
? Используйте StringReader
.
- ...
Так что, если вам нужен определенный поток/читатель/писатель, проверьте java.io
пакет, выполните поиск в Интернете и задайте вопрос о СО, если необходимо.
Конечно, то есть java.nio
package, которые вы должны знать. Но это для другой темы.
https://github.com/search?l=java&q=ByteArrayInputStream&source=cc&type=Code –
Могу я узнать, что случилось с моим вопросом? –