Рубрики

Java.io.BufferedInputStream класс в Java

BufferedInputStream добавляет функциональность к другому входному потоку, а именно, возможность буферизовать ввод и поддерживать методы меток и сброса. При создании BufferedInputStream создается внутренний буферный массив. Поскольку байты из потока считываются или пропускаются, внутренний буфер пополняется по мере необходимости из содержащегося входного потока, много байтов за раз.

Конструктор и описание

  • BufferedInputStream (InputStream in): создает BufferedInputStream и сохраняет его аргумент, входной поток, для дальнейшего использования.
  • BufferedInputStream (InputStream in, int size): создает BufferedInputStream с указанным размером буфера и сохраняет его аргумент, входной поток, для последующего использования.

Методы:

  • int available (): возвращает оценку количества байтов, которые
    может быть прочитан (или пропущен) из этого входного потока без
    блокировка при следующем вызове метода для этого входного потока.
    Syntax:public int available()
                  throws IOException
    Returns:
    an estimate of the number of bytes that can be 
    read (or skipped over) from this input stream without blocking.
    Throws:
    IOException
    
  • void close (): закрывает этот входной поток и освобождает все системные ресурсы, связанные с этим потоком.
    Syntax:public void close()
               throws IOException
    Overrides:
    close in class FilterInputStream
    Throws:
    IOException 
    
  • void mark (int readlimit): отмечает текущую позицию в этом входном потоке.
    Syntax:public void mark(int readlimit)
    Overrides:
    mark in class FilterInputStream
    Parameters:
    readlimit - the maximum limit of bytes that can be read 
    before the mark position becomes invalid.
    
  • boolean markSupported (): Проверяет, поддерживает ли этот поток ввода методы mark и reset.
    Syntax:public boolean markSupported()
    Overrides:
    markSupported in class FilterInputStream
    Returns:
    a boolean indicating if this stream type supports the mark and reset methods.
    
  • int read (): читает следующий байт данных из входного потока.
    Syntax:public int read()
             throws IOException
    Returns:
    the next byte of data, or -1 if the end of the stream is reached.
    Throws:
    IOException 
    
  • int read (byte [] b, int off, int len): считывает байты из этого потока байтового ввода в указанный байтовый массив, начиная с заданного смещения.
    Syntax:public int read(byte[] b,
           int off,
           int len)
             throws IOException
    Parameters:
    b - destination buffer.
    off - offset at which to start storing bytes.
    len - maximum number of bytes to read.
    Returns:
    the number of bytes read, or -1 if the end of the stream has been reached.
    Throws:
    IOException 
    
  • void reset (): перемещает этот поток в позицию во время последнего вызова метода mark для этого входного потока.
    Syntax:public void reset()
               throws IOException
    Overrides:
    reset in class FilterInputStream
    Throws:
    IOException
    
  • long skip (long n): пропускает и отбрасывает n байтов данных из этого входного потока
    Syntax:public long skip(long n)
              throws IOException
    Parameters:
    n - the number of bytes to be skipped.
    Returns:
    the actual number of bytes skipped.
    Throws:
    IOException

Программа:

// Java-программа для демонстрации работы BufferedInputStream

import java.io.BufferedInputStream;

import java.io.FileInputStream;

import java.io.IOException;

  
// Java-программа для демонстрации методов BufferedInputStream

class BufferedInputStreamDemo

{

    public static void main(String args[]) throws IOException

    {

        // прикрепляем файл к FileInputStream

        FileInputStream fin = new FileInputStream("file1.txt");

  

        BufferedInputStream bin = new BufferedInputStream(fin);

  

        // иллюстрирующий доступный метод

        System.out.println("Number of remaining bytes:" +

                                            bin.available());

  

        // иллюстрируем метод markSupported () и mark ()

        boolean b=bin.markSupported();

        if (b)

            bin.mark(bin.available());

  

        // иллюстрирующий метод пропуска

        / * Исходное содержимое файла:

        * Это моя первая строчка

        * Это моя вторая строчка * /

        bin.skip(4);

        System.out.println("FileContents :");

  

        // читаем символы из FileInputStream и

        // напишем их

        int ch;

        while ((ch=bin.read()) != -1)

            System.out.print((char)ch);

  

        // иллюстрирующий метод reset ()

        bin.reset();

        while ((ch=bin.read()) != -1)

            System.out.print((char)ch);

  

        // закрываем файл

        fin.close();

    }

}

Выход:

Number of remaining bytes:47
FileContents :
 is my first line
This is my second line
This is my first line
This is my second line


Следующая статья:
Java.io.BufferedOutputStream класс в Java

Эта статья предоставлена Nishant Sharma . Если вы как GeeksforGeeks и хотели бы внести свой вклад, вы также можете написать статью с помощью contribute.geeksforgeeks.org или по почте статьи contribute@geeksforgeeks.org. Смотрите свою статью, появляющуюся на главной странице GeeksforGeeks, и помогите другим вундеркиндам.

Пожалуйста, пишите комментарии, если вы обнаружите что-то неправильное или вы хотите поделиться дополнительной информацией по обсуждаемой выше теме.

Рекомендуемые посты:

Java.io.BufferedInputStream класс в Java

0.00 (0%) 0 votes