Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial programming >> Java

Java BufferedOutputStream Class

Java BufferedOutputStream-klasse

In deze zelfstudie leren we over Java BufferedOutputStream en zijn methoden met behulp van voorbeelden.

De BufferedOutputStream klasse van de java.io pakket wordt gebruikt met andere uitvoerstromen om de gegevens (in bytes) efficiënter te schrijven.

Het verlengt de OutputStream abstracte klas.


Werking van BufferedOutputStream

De BufferedOutputStream onderhoudt een interne buffer van 8192 bytes .

Tijdens de schrijfbewerking worden de bytes naar de interne buffer geschreven in plaats van naar de schijf. Zodra de buffer is gevuld of de stream is gesloten, wordt de hele buffer naar de schijf geschreven.

Daarom wordt het aantal communicatie naar de schijf verminderd. Dit is de reden waarom het schrijven van bytes sneller gaat met BufferedOutputStream .


Maak een BufferedOutputStream

Om een ​​BufferedOutputStream . te maken , moeten we de java.io.BufferedOutputStream . importeren pakket eerst. Zodra we het pakket hebben geïmporteerd, kunnen we hier de uitvoerstroom maken.

// Creates a FileOutputStream
FileOutputStream file = new FileOutputStream(String path);

// Creates a BufferedOutputStream
BufferedOutputStream buffer = new BufferOutputStream(file);

In het bovenstaande voorbeeld hebben we een BufferdOutputStream . gemaakt genaamd buffer met de FileOutputStream genaamd bestand .

Hier heeft de interne buffer de standaardgrootte van 8192 bytes. We kunnen echter ook de grootte van de interne buffer specificeren.

// Creates a BufferedOutputStream with specified size internal buffer
BufferedOutputStream buffer = new BufferOutputStream(file, int size);

De buffer zal helpen om sneller bytes naar bestanden te schrijven.


Methoden van BufferedOutputStream

De BufferedOutputStream class biedt implementaties voor verschillende methoden in de OutputStream klasse.

write()-methode

  • write() - schrijft een enkele byte naar de interne buffer van de uitvoerstroom
  • write(byte[] array) - schrijft de bytes van de opgegeven array naar de uitvoerstroom
  • write(byte[] arr, int start, int length) - schrijft het aantal bytes gelijk aan lengte naar de uitvoerstroom van een array beginnend vanaf de positie start

Voorbeeld:BufferedOutputStream om gegevens naar een bestand te schrijven

import java.io.FileOutputStream;
import java.io.BufferedOutputStream;

public class Main {
    public static void main(String[] args) {

        String data = "This is a line of text inside the file";

        try {
            // Creates a FileOutputStream
            FileOutputStream file = new FileOutputStream("output.txt");

            // Creates a BufferedOutputStream
            BufferedOutputStream output = new BufferedOutputStream(file);

            byte[] array = data.getBytes();

            // Writes data to the output stream
            output.write(array);
            output.close();
        }

        catch (Exception e) {
            e.getStackTrace();
        }
    }
}

In het bovenstaande voorbeeld hebben we een gebufferde uitvoerstroom gemaakt met de naam output samen met FileOutputStream . De uitvoerstroom is gekoppeld aan het bestand output.txt .

FileOutputStream file = new FileOutputStream("output.txt");
BufferedOutputStream output = new BufferedOutputStream(file);

Om gegevens naar het bestand te schrijven, hebben we de write() . gebruikt methode.

Hier wanneer we het programma uitvoeren, de output.txt bestand is gevuld met de volgende inhoud.

This is a line of text inside the file.

Opmerking :De getBytes() methode die in het programma wordt gebruikt, converteert een string naar een array van bytes.


flush()-methode

Om de interne buffer te wissen, kunnen we de flush() . gebruiken methode. Deze methode dwingt de uitvoerstroom om alle gegevens in de buffer naar het doelbestand te schrijven. Bijvoorbeeld,

import java.io.FileOutputStream;
import java.io.BufferedOutputStream;

public class Main {
    public static void main(String[] args) {

        String data = "This is a demo of the flush method";

        try {
            // Creates a FileOutputStream
            FileOutputStream file = new FileOutputStream(" flush.txt");

            // Creates a BufferedOutputStream
            BufferedOutputStream buffer = new BufferedOutputStream(file);

            // Writes data to the output stream
            buffer.write(data.getBytes());

            // Flushes data to the destination
            buffer.flush();
            System.out.println("Data is flushed to the file.");
            buffer.close();
        }

        catch(Exception e) {
            e.getStackTrace();
        }
    }
}

Uitvoer

Data is flushed to the file.

Wanneer we het programma uitvoeren, wordt het bestand flush.txt is gevuld met de tekst die wordt weergegeven door de tekenreeks data .


close()-methode

Om de gebufferde uitvoerstroom te sluiten, kunnen we de close() . gebruiken methode. Als de methode eenmaal is aangeroepen, kunnen we de uitvoerstroom niet gebruiken om de gegevens te schrijven.

Ga voor meer informatie naar Java BufferedOutputStream (officiële Java-documentatie).


Java

  1. Java laatste trefwoord
  2. Java-instantie van Operator
  3. Java-erfenis
  4. Java geneste statische klasse
  5. Java anonieme klasse
  6. Java Singleton-klasse
  7. Java-reflectie
  8. Java ArrayList-klasse
  9. Java ObjectOutputStream-klasse
  10. Java-generieken
  11. Java-bestandsklasse