Метод read класса InputStream
Метод read класса InputStream читает
один байт из входного потока и возвращает его
числовое значение в диапазоне от 0 до 255.
Если достигнут конец потока, метод возвращает
-1. Метод не принимает параметров и блокирует
выполнение программы до тех пор, пока байт не будет
прочитан или поток не будет закрыт.
Синтаксис
int read()
Пример
Давайте прочитаем первый байт из потока
ByteArrayInputStream:
import java.io.ByteArrayInputStream;
import java.io.InputStream;
import java.io.IOException;
public class Main
{
public static void main(String[] args) throws IOException
{
byte[] data = {97, 98, 99, 100, 101};
InputStream is = new ByteArrayInputStream(data);
int res = is.read();
System.out.println(res);
is.close();
}
}
Результат выполнения кода:
97
Пример
Давайте прочитаем все байты из потока в цикле,
пока метод read не вернёт -1:
import java.io.ByteArrayInputStream;
import java.io.InputStream;
import java.io.IOException;
public class Main
{
public static void main(String[] args) throws IOException
{
byte[] data = {97, 98, 99, 100, 101};
InputStream is = new ByteArrayInputStream(data);
int b;
while ((b = is.read()) != -1)
{
System.out.println((char) b);
}
is.close();
}
}
Результат выполнения кода:
a
b
c
d
e
Пример
Давайте проверим, что метод возвращает -1,
когда поток пуст:
import java.io.ByteArrayInputStream;
import java.io.InputStream;
import java.io.IOException;
public class Main
{
public static void main(String[] args) throws IOException
{
byte[] data = {};
InputStream is = new ByteArrayInputStream(data);
int res = is.read();
System.out.println(res);
is.close();
}
}
Результат выполнения кода:
-1
Смотрите также
-
класс
InputStream,
который является базовым для всех входных потоков -
метод
readAllBytes,
который читает все байты потока -
метод
readNBytes,
который читает заданное количество байт -
метод
available,
который возвращает количество доступных байт