Как правильно читать из inputstream в java?

Пользователь

от cooper.berge , в категории: Java , 6 месяцев назад

Как правильно читать из inputstream в java?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от forest , 5 месяцев назад

@cooper.berge 

В Java есть несколько способов чтения данных из InputStream. Рассмотрим несколько из них:

  1. Чтение по одному байту
1
2
3
4
5
6
InputStream inputStream = new FileInputStream("file.txt");
int data;
while ((data = inputStream.read()) != -1) {
    // обрабатываем байт
}
inputStream.close();


  1. Чтение в буфер
1
2
3
4
5
6
7
InputStream inputStream = new FileInputStream("file.txt");
byte[] buffer = new byte[1024];
int bytesRead;
while ((bytesRead = inputStream.read(buffer)) != -1) {
    // обрабатываем буфер
}
inputStream.close();


  1. Использование BufferedReader
1
2
3
4
5
6
7
InputStream inputStream = new FileInputStream("file.txt");
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
String line;
while ((line = reader.readLine()) != null) {
    // обрабатываем строку
}
reader.close();


Важно помнить, что после чтения из InputStream его необходимо закрыть с помощью метода close(), чтобы освободить ресурсы. Этот метод должен быть вызван в блоке finally для гарантии того, что поток будет закрыт, даже если в процессе чтения произошла ошибка.