Java : BufferedOutputStream con ejemplos

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

Nota :


Summary

La clase implementa un flujo de salida almacenado en búfer. Al configurar dicho flujo de salida, una aplicación puede escribir bytes en el flujo de salida subyacente sin tener que realizar necesariamente una llamada al sistema subyacente por cada byte escrito. (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

try (final var os = new BufferedOutputStream(Files.newOutputStream(file))) {
    os.write(10);
    os.write(20);
    os.write(30);
}

final var ret = Files.readAllBytes(file);
System.out.println(Arrays.toString(ret)); // [10, 20, 30]

Fields

protected byte[] buf

El buffer 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 número de bytes válidos 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.

Fields declared in FilterOutputStream

out

Consulte el siguiente enlace.

Constructors

BufferedOutputStream (OutputStream out)

Crea un nuevo flujo de salida almacenado en búfer para escribir datos en el flujo de salida subyacente especificado. (Traducción automática)

final var out = new ByteArrayOutputStream();
try (final var os = new BufferedOutputStream(out)) {
    os.write(10);
    os.write(20);
    os.write(30);
}

System.out.println(Arrays.toString(out.toByteArray())); // [10, 20, 30]

BufferedOutputStream (OutputStream out, int size)

Crea una nueva secuencia de salida almacenada en búfer para escribir datos en la secuencia de salida subyacente especificada con el tamaño de búfer especificado. (Traducción automática)

class MyOutputStream extends BufferedOutputStream {
    MyOutputStream(OutputStream out) {
        super(out);
    }

    MyOutputStream(OutputStream out, int size) {
        super(out, size);
    }

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

try (final var os = new MyOutputStream(new ByteArrayOutputStream())) {
    System.out.println(os.getBufferSize()); // 8192
}

try (final var os = new MyOutputStream(new ByteArrayOutputStream(), 32)) {
    System.out.println(os.getBufferSize()); // 32
}

Methods

void flush ()

Limpia este flujo de salida almacenado en búfer. (Traducción automática)

final var out = new ByteArrayOutputStream();

try (final var os = new BufferedOutputStream(out)) {

    os.write(10);
    System.out.println(Arrays.toString(out.toByteArray())); // []

    os.flush();
    System.out.println(Arrays.toString(out.toByteArray())); // [10]

    os.write(20);
    System.out.println(Arrays.toString(out.toByteArray())); // [10]

    os.flush();
    System.out.println(Arrays.toString(out.toByteArray())); // [10, 20]

    os.write(30);
    System.out.println(Arrays.toString(out.toByteArray())); // [10, 20]
}

System.out.println(Arrays.toString(out.toByteArray())); // [10, 20, 30]

void write (byte[] b, int off, int len)

Escribe len bytes de la matriz de bytes especificada comenzando en el desplazamiento off en esta secuencia de salida almacenada en búfer. (Traducción automática)

final var out = new ByteArrayOutputStream();

try (final var os = new BufferedOutputStream(out)) {

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

    os.write(b, 0, 2);
    os.flush();
    System.out.println(Arrays.toString(out.toByteArray())); // [10, 20]

    os.write(b, 2, 3);
    os.flush();
    System.out.println(Arrays.toString(out.toByteArray())); // [10, 20, 30, 40, 50]
}

void write (int b)

Escribe el byte especificado en este flujo de salida almacenado en búfer. (Traducción automática)

final var out = new ByteArrayOutputStream();
try (final var os = new BufferedOutputStream(out)) {
    os.write(10);
    os.write(20);
    os.write(30);
}

System.out.println(Arrays.toString(out.toByteArray())); // [10, 20, 30]

Methods declared in FilterOutputStream

close, write

Consulte el siguiente enlace.

Methods declared in OutputStream

nullOutputStream

Consulte el siguiente enlace.


Related posts

To top of page