Отличие методов read и available в потоках ввода-вывода заключается в их назначении:
Таким образом, метод available() лишь проверяет наличие данных, а метод read() — их считывает. 4
Например, при вызове метода read() возможно возникновение ситуации, когда запрашиваемые данные ещё не готовы к считыванию. 1 В таком случае метод available() позволяет узнать, сколько байт в потоке готово к считыванию. 1