codestory

Die Anleitung zu Java BufferedOutputStream

  1. BufferedOutputStream
  2. Examples

1. BufferedOutputStream

BufferedOutputStream ist eine Unterklasse von OutputStream, mit der das Schreiben von Text in einen binären Ausgabestream (binary output stream) vereinfacht und die Programmleistung verbessert wird.
Der Operationsgrundsatz von BufferedOutputStream ist so gleich wie die folgende Abbildung:
BufferedOutputStream wickelt ein Objekt OutputStream, das Objekt hat die Aufgabe zum Datenschreiben ins Ziel (z.B die File).
BufferedOutputStream überschreibt (override) die aus seiner Vaterklasse geerbten Methode, z.B write(), write(byte[]),... um sicherzustellen, dass die Daten im buffer , nicht ins Ziel (die Datei) geschrieben werden. Aber wenn buffer voll ist, werden alle Daten auf buffer im OutputStream geschoben und befreit buffer. Sie können die Methode BufferedOutputStream.flush() aufrufen um alle Daten auf buffer nach OutputStream zu schieben und buffer zu befreien. Die Daten werden auch vom buffer nach OutputStream geschoben wenn die Methode BufferedOutputStream.close() aufgerufen wird.
Die oben erwähnt sogenannte "buffer" ist eigentlich ein Array byte. Sie können die Größe des Array bei der Erstellung eines Objekt BufferedOutputStream festlegen.
Die Daten, die vorläufig in den buffer geschrieben werden, minimieren das kontinuierliche Schreiben auf das Ziel (z.B die File auf der Festplatte) und verbessern die Leistung des Programms.
BufferedOutputStream constructors
BufferedOutputStream(OutputStream out)    

BufferedOutputStream(OutputStream out, int size)
  • Der Contructor BufferedOutputStream(OutputStream,int) erstellt ein Objekt BufferedOutputStream mit dem Array buffer, dessen Größe festgelegt ist.
  • Der Contructor BufferedOutputStream(OutputStream) erstellt ein Objekt BufferedOutputStream mit dem Array buffer, dessen Größe default ist (size = 8192).

2. Examples

Z.B: Erstellen Sie ein BufferedOutputStream mit der Größe vom Array buffer als 16384. D.h buffer hat die Kapazität von 16384 bytes (16 KB).
File outFile = new File("/Volumes/Data/test/outfile.txt");
outFile.getParentFile().mkdirs(); // Create parent folder.

// Create OutputStream to write a file.
OutputStream os = new FileOutputStream(outFile);

// Create a BufferedOutputStream with buffer array size of 16384 (16384 bytes = 16 KB).
BufferedOutputStream br = new BufferedOutputStream(os, 16384);
Erstellen Sie ein BufferedOutputStream mit der Defaultgröße vom Array buffer (8192), entspricht 8192 bytes (8 KB).
File outFile = new File("/Volumes/Data/test/outfile.txt");
outFile.getParentFile().mkdirs(); // Create parent folder.

// Create OutputStream to write a file.
OutputStream os = new FileOutputStream(outFile);

// Create a BufferedOutputStream with default buffer array size of 8192 (8192 bytes = 8 KB).
BufferedOutputStream br = new BufferedOutputStream(os);
Die volle Code vom Beispiel:
BufferedOutputStreamEx1.java
package org.o7planning.bufferedoutputstream.ex;

import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;

public class BufferedOutputStreamEx1 {

    private static final String file_path = "/Volumes/Data/test/outfile.txt";

    public static void main(String[] args) throws IOException {
        File outFile = new File(file_path);
        outFile.getParentFile().mkdirs(); // Create parent folder.

        // Create OutputStream to write a file.
        OutputStream os = new FileOutputStream(outFile);

        // Create a BufferedOutputStream with buffer array size of 16384 (16384 bytes = 16 KB).
        BufferedOutputStream br = new BufferedOutputStream(os, 16384);

        br.write("JP".getBytes("UTF-8"));
        br.write('\n');
        br.write("日本".getBytes("UTF-8"));
        br.write('\n');
        br.flush();

        br.write('\n');
        br.write("八洲".getBytes("UTF-8"));

        br.close();
    }
}
Output:
outfile.txt
JP
日本

八洲

Die Anleitungen Java IO

Show More