Метод read класса Reader
Метод read класса Reader читает данные из потока ввода. У метода есть три перегрузки. Первая перегрузка не принимает параметров и возвращает один прочитанный символ в виде числа типа int или -1, если достигнут конец потока. Вторая перегрузка принимает массив символов char[] и возвращает количество прочитанных символов или -1, если достигнут конец потока. Третья перегрузка принимает массив символов, смещение и длину, а возвращает количество прочитанных символов или -1, если достигнут конец потока.
Синтаксис
int read()
int read(char[] cbuf)
int read(char[] cbuf, int off, int len)
Пример
Давайте прочитаем один символ из строкового потока:
import java.io.StringReader;
import java.io.Reader;
import java.io.IOException;
public class Main
{
public static void main(String[] args) throws IOException
{
Reader reader = new StringReader("abcde");
int res = reader.read();
System.out.println(res);
System.out.println((char) res);
reader.close();
}
}
Результат выполнения кода:
97
"a"
Пример
Давайте прочитаем все символы из потока в массив:
import java.io.StringReader;
import java.io.Reader;
import java.io.IOException;
public class Main
{
public static void main(String[] args) throws IOException
{
Reader reader = new StringReader("abcde");
char[] buf = new char[5];
int res = reader.read(buf);
System.out.println(res);
System.out.println(new String(buf));
reader.close();
}
}
Результат выполнения кода:
5
"abcde"
Пример
Давайте прочитаем часть символов из потока, указав смещение и длину:
import java.io.StringReader;
import java.io.Reader;
import java.io.IOException;
public class Main
{
public static void main(String[] args) throws IOException
{
Reader reader = new StringReader("abcde");
char[] buf = new char[5];
int res = reader.read(buf, 1, 3);
System.out.println(res);
System.out.println(new String(buf));
reader.close();
}
}
Результат выполнения кода:
3
" abc"
Пример
Давайте проверим, что возвращает метод при достижении конца потока:
import java.io.StringReader;
import java.io.Reader;
import java.io.IOException;
public class Main
{
public static void main(String[] args) throws IOException
{
Reader reader = new StringReader("abcde");
reader.read();
reader.read();
reader.read();
reader.read();
reader.read();
int res = reader.read();
System.out.println(res);
reader.close();
}
}
Результат выполнения кода:
-1
Смотрите также
-
класс
Reader,
который является базовым классом для чтения символов -
метод
close,
который закрывает поток чтения -
класс
BufferedReader,
который добавляет буферизацию при чтении -
метод
readLine,
который читает строку целиком