Java : BufferedInputStream con ejemplos

BufferedInputStream (Java SE 21 & JDK 21) en Java con ejemplos.
Encontrará ejemplos de código en la mayoría de los métodos de BufferedInputStream.

Nota :


Summary

Un BufferedInputStream agrega funcionalidad a otro flujo de entrada, es decir, la capacidad de almacenar en búfer la entrada y admitir los métodos de marcado y restablecimiento. Cuando se crea un BufferedInputStream, se crea una matriz de búfer interna. (Traducción automática)

Class diagram

final var file = Path.of("R:", "java-work", "aaa.data");
System.out.println(file); // R:\java-work\aaa.data

Files.write(file, new byte[]{10, 20, 30});

try (final var is = new BufferedInputStream(Files.newInputStream(file))) {
    System.out.println(is.read()); // 10
    System.out.println(is.read()); // 20
    System.out.println(is.read()); // 30
    System.out.println(is.read()); // -1
}

Fields

protected byte[] buf

La matriz de búfer interno donde se almacenan los datos. (Traducción automática)

protected. I think it's rare to create a subclass of this class. Therefore, the code example is omitted.

protected int count

El índice es uno mayor que el índice del último byte válido en el búfer. (Traducción automática)

protected. I think it's rare to create a subclass of this class. Therefore, the code example is omitted.

protected int marklimit

La lectura anticipada máxima permitida después de una llamada al método de marca antes de que las llamadas subsiguientes al método de restablecimiento fallen. (Traducción automática)

protected. I think it's rare to create a subclass of this class. Therefore, the code example is omitted.

protected int markpos

El valor del campo pos en el momento en que se llamó al último método de marca. (Traducción automática)

protected. I think it's rare to create a subclass of this class. Therefore, the code example is omitted.

protected int pos

La posición actual en el buffer. (Traducción automática)

protected. I think it's rare to create a subclass of this class. Therefore, the code example is omitted.

Fields declared in FilterInputStream

in

Consulte el siguiente enlace.

Constructors

BufferedInputStream (InputStream in)

Crea un BufferedInputStream y guarda su argumento, el flujo de entrada, para su uso posterior. (Traducción automática)

final byte[] buf = {10, 20, 30};
try (final var is = new BufferedInputStream(new ByteArrayInputStream(buf))) {
    System.out.println(is.read()); // 10
    System.out.println(is.read()); // 20
    System.out.println(is.read()); // 30
    System.out.println(is.read()); // -1
}

BufferedInputStream (InputStream in, int size)

Crea un BufferedInputStream con el tamaño de búfer especificado y guarda su argumento, el flujo de entrada, para su uso posterior. (Traducción automática)

Please see also : BufferedInputStream(InputStream in)

class MyInputStream extends BufferedInputStream {
    MyInputStream(InputStream in) {
        super(in);
    }

    MyInputStream(InputStream in, int size) {
        super(in, size);
    }

    int getBufferSize() {
        return buf.length;
    }
}

final byte[] buf = {10, 20, 30};
try (final var is = new MyInputStream(new ByteArrayInputStream(buf))) {
    System.out.println(is.getBufferSize()); // 8192
}

try (final var is = new MyInputStream(new ByteArrayInputStream(buf), 32)) {
    System.out.println(is.getBufferSize()); // 32
}

Methods

int available ()

Devuelve una estimación de la cantidad de bytes que se pueden leer (o omitir) de este flujo de entrada sin bloquearse con la próxima invocación de un método para este flujo de entrada. (Traducción automática)

final byte[] buf = {10, 20, 30};
try (final var is = new BufferedInputStream(new ByteArrayInputStream(buf))) {
    System.out.println(is.available()); // 3
    System.out.println(is.read()); // 10

    System.out.println(is.available()); // 2
    System.out.println(is.read()); // 20

    System.out.println(is.available()); // 1
    System.out.println(is.read()); // 30

    System.out.println(is.available()); // 0
    System.out.println(is.read()); // -1
}

void close ()

Cierra este flujo de entrada y libera cualquier recurso del sistema asociado con el flujo. (Traducción automática)

final var file = Path.of("R:", "java-work", "aaa.data");
Files.write(file, new byte[]{10, 20, 30});

try (final var is = new BufferedInputStream(Files.newInputStream(file))) {
    final var ret = is.readAllBytes();
    System.out.println(Arrays.toString(ret)); // [10, 20, 30]
}
// An example without a try-with-resources statement.
final var file = Path.of("R:", "java-work", "aaa.data");
Files.write(file, new byte[]{10, 20, 30});

final var is = new BufferedInputStream(Files.newInputStream(file));
try {
    final var ret = is.readAllBytes();
    System.out.println(Arrays.toString(ret)); // [10, 20, 30]
} finally {
    is.close();
}

void mark (int readlimit)

Consulte el contrato general del método de marca de InputStream. (Traducción automática)

final byte[] buf = {10, 20, 30, 40, 50};

try (final var is = new BufferedInputStream(new ByteArrayInputStream(buf))) {
    System.out.println(is.read()); // 10
    System.out.println(is.read()); // 20

    is.mark(4);

    System.out.println(is.read()); // 30
    System.out.println(is.read()); // 40
    System.out.println(is.read()); // 50
    System.out.println(is.read()); // -1

    is.reset();

    System.out.println(is.read()); // 30
    System.out.println(is.read()); // 40
    System.out.println(is.read()); // 50
    System.out.println(is.read()); // -1
}

boolean markSupported ()

Comprueba si este flujo de entrada admite los métodos de marcar y restablecer. (Traducción automática)

final byte[] buf = {10, 20, 30};

try (final var is = new BufferedInputStream(new ByteArrayInputStream(buf))) {
    System.out.println(is.markSupported()); // true
}

int read ()

Consulte el contrato general del método de lectura de InputStream. (Traducción automática)

final byte[] buf = {10, 20, 30};
try (final var is = new BufferedInputStream(new ByteArrayInputStream(buf))) {
    System.out.println(is.read()); // 10
    System.out.println(is.read()); // 20
    System.out.println(is.read()); // 30
    System.out.println(is.read()); // -1
}

int read (byte[] b, int off, int len)

Lee bytes de este flujo de entrada de bytes en la matriz de bytes especificada, comenzando en el desplazamiento indicado. (Traducción automática)

final byte[] buf = {10, 20, 30};

try (final var is = new BufferedInputStream(new ByteArrayInputStream(buf))) {
    final var b1 = new byte[3];

    System.out.println(is.read(b1, 0, 1)); // 1
    System.out.println(Arrays.toString(b1)); // [10, 0, 0]

    final var b2 = new byte[3];

    System.out.println(is.read(b2, 0, 2)); // 2
    System.out.println(Arrays.toString(b2)); // [20, 30, 0]

    final var b3 = new byte[3];

    System.out.println(is.read(b3, 0, 3)); // -1
    System.out.println(Arrays.toString(b3)); // [0, 0, 0]
}

try (final var is = new BufferedInputStream(new ByteArrayInputStream(buf))) {
    final var b1 = new byte[3];

    System.out.println(is.read(b1, 2, 1)); // 1
    System.out.println(Arrays.toString(b1)); // [0, 0, 10]

    final var b2 = new byte[3];

    System.out.println(is.read(b2, 1, 2)); // 2
    System.out.println(Arrays.toString(b2)); // [0, 20, 30]

    final var b3 = new byte[3];

    System.out.println(is.read(b3, 0, 3)); // -1
    System.out.println(Arrays.toString(b3)); // [0, 0, 0]
}

void reset ()

Consulte el contrato general del método de reinicio de InputStream. (Traducción automática)

final byte[] buf = {10, 20, 30, 40, 50};

try (final var is = new BufferedInputStream(new ByteArrayInputStream(buf))) {
    System.out.println(is.read()); // 10
    System.out.println(is.read()); // 20

    is.mark(4);

    System.out.println(is.read()); // 30
    System.out.println(is.read()); // 40
    System.out.println(is.read()); // 50
    System.out.println(is.read()); // -1

    is.reset();

    System.out.println(is.read()); // 30
    System.out.println(is.read()); // 40
    System.out.println(is.read()); // 50
    System.out.println(is.read()); // -1
}

long skip (long n)

Vea el contrato general del método skip de InputStream. (Traducción automática)

final byte[] buf = {10, 20, 30, 40, 50, 60, 70, 80, 90, 100};

try (final var is = new BufferedInputStream(new ByteArrayInputStream(buf))) {
    System.out.println(is.read()); // 10

    System.out.println(is.skip(1)); // 1
    System.out.println(is.read()); // 30

    System.out.println(is.skip(2)); // 2
    System.out.println(is.read()); // 60

    System.out.println(is.skip(3)); // 3
    System.out.println(is.read()); // 100

    System.out.println(is.skip(1)); // 0
    System.out.println(is.read()); // -1
}

Methods declared in FilterInputStream

read

Consulte el siguiente enlace.

Methods declared in InputStream

nullInputStream, readAllBytes, readNBytes, readNBytes, skipNBytes, transferTo

Consulte el siguiente enlace.


Related posts

To top of page