|
Spec-Zone .ru
спецификации, руководства, описания, API
|
public class BufferedReader extends Reader
Размер буфера может быть определен, или размер по умолчанию может использоваться. Значение по умолчанию является достаточно большим в большинстве целей.
Вообще, каждая просьба чтения, сделанная из Читателя, заставляет соответствующий запрос чтения быть обращенным к базовому символьному или потоку байтов. Поэтому желательно обернуть BufferedReader вокруг любого Читателя, чей считанный () операции могут быть дорогостоящими, такими как FileReaders и InputStreamReaders. Например,
BufferedReader in
= new BufferedReader(new FileReader("foo.in"));
буферизует ввод от указанного файла. Без буферизации каждый вызов чтения () или readLine () мог заставить байты быть считанными из файла, преобразовал в символы, и затем возвратился, который может быть очень неэффективным. Программы, которые используют DataInputStreams для текстового ввода, могут быть локализованы, заменяя каждый DataInputStream с соответствующим BufferedReader.
FileReader, InputStreamReader, Files.newBufferedReader(java.nio.file.Path, java.nio.charset.Charset)блокировка| Конструктор и Описание |
|---|
BufferedReader(Reader in)
Создает поток ввода символов буферизации, который использует входной буфер размера по умолчанию.
|
BufferedReader(Reader in, int sz)
Создает поток ввода символов буферизации, который использует входной буфер указанного размера.
|
| Модификатор и Тип | Метод и Описание |
|---|---|
void |
close()
Закрывает поток и выпускает любые системные ресурсы, связанные с этим.
|
void |
mark(int readAheadLimit)
Отмечает нынешнее положение в потоке.
|
boolean |
markSupported()
Говорит, поддерживает ли этот поток метку () работа, которую это делает.
|
int |
read()
Читает единственный символ.
|
int |
read(char[] cbuf, int off, int len)
Символы чтений в часть массива.
|
Строка |
readLine()
Читает строку текста.
|
boolean |
ready()
Говорит, готов ли этот поток быть считанным.
|
void |
reset()
Сбрасывает поток к новой метке.
|
long |
skip(long n)
Символы пропусков.
|
public BufferedReader(Reader in, int sz)
in - Читательsz - Входной размер буфераIllegalArgumentException - Если sz <= 0public BufferedReader(Reader in)
in - Читательpublic int read()
throws IOException
read в классе ReaderIOException - Если ошибка ввода-вывода происходитpublic int read(char[] cbuf,
int off,
int len)
throws IOException
Этот метод реализует общий контракт соответствия метод read класс. Как дополнительное удобство, это пытается считать так много символов насколько возможно, неоднократно вызывая Readerread метод базового потока. Это выполнило итерации read продолжается, пока одно из следующих условий не становится истиной:
read метод базовых потоковых возвратов -1, указание на конец файла, или ready метод базовых потоковых возвратов false, указание, что далее входные запросы блокировали бы. read по базовым потоковым возвратам -1 указать на конец файла тогда этот метод возвраты -1. Иначе этот метод возвращает число символов фактически чтение. Подклассы этого класса поощряются, но не требуются, чтобы попытаться считать так много символов насколько возможно тем же самым способом.
Обычно этот метод берет символы от символьного буфера этого потока, заполняя это от базового потока по мере необходимости. Если, однако, буфер пуст, метка не допустима, и требуемая длина является, по крайней мере, столь же большой как буфер, то этот метод считает символы непосредственно из базового потока в данный массив. Таким образом избыточный BufferedReaders не будет копировать данные излишне.
read в классе Readercbuf - Целевой буферoff - Смещение, при котором можно начать хранить символыlen - Максимальное количество символов, чтобы читатьIOException - Если ошибка ввода-вывода происходитpublic String readLine() throws IOException
IOException - Если ошибка ввода-вывода происходитFiles.readAllLines(java.nio.file.Path, java.nio.charset.Charset)public long skip(long n)
throws IOException
skip в классе Readern - Число символов, чтобы пропуститьIllegalArgumentException - Если n отрицательно.IOException - Если ошибка ввода-вывода происходитpublic boolean ready()
throws IOException
ready в классе ReaderIOException - Если ошибка ввода-вывода происходитpublic boolean markSupported()
markSupported в классе Readerpublic void mark(int readAheadLimit)
throws IOException
mark в классе ReaderreadAheadLimit - Предел на числе символов, которые могут быть считаны, все еще сохраняя метку. Попытка сбросить поток после того, чтобы читать символы до этого предела или вне может перестать работать. Предельное значение, больше чем размер входного буфера, заставит новый буфер быть выделенным, чей размер не меньше чем предел. Поэтому большие значения должны использоваться с заботой.IllegalArgumentException - Если readAheadLimit < 0IOException - Если ошибка ввода-вывода происходитpublic void reset()
throws IOException
reset в классе ReaderIOException - Если поток никогда не отмечался, или если метка была лишена законной силыpublic void close()
throws IOException
Readerclose в интерфейсе Closeableclose в интерфейсе AutoCloseableclose в классе ReaderIOException - Если ошибка ввода-вывода происходит
Для дальнейшей ссылки API и документации разработчика, см. . Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2011, Oracle и/или его филиалы. Все права защищены.