Java BufferedOutputStream (ar piemēriem)

Šajā apmācībā mēs ar piemēru palīdzību uzzināsim par Java BufferedOutputStream un tā metodēm.

BufferedOutputStreamNo klases java.iopaketē tiek lietots kopā ar citiem izvades plūsmām, lai rakstītu datus (baitos) efektīvāk.

Tas paplašina OutputStreamabstrakto klasi.

BufferedOutputStream darbs

BufferedOutputStreamUztur iekšējo buferi 8192 baitu .

Rakstīšanas laikā baiti tiek ierakstīti diska vietā iekšējā buferī. Kad buferis ir aizpildīts vai straume ir aizvērta, viss buferis tiek ierakstīts diskā.

Tādējādi tiek samazināts sakaru skaits uz disku. Tāpēc baitu rakstīšana ir ātrāka BufferedOutputStream.

Izveidojiet BufferedOutputStream

Lai izveidotu a BufferedOutputStream, mums vispirms ir jāimportē java.io.BufferedOutputStreampakete. Pēc pakotnes importēšanas šeit mēs varam izveidot izvades straumi.

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

Iepriekš minētajā piemērā mēs esam izveidojuši BufferdOutputStreamnosauktu buferi ar FileOutputStreamnosaukto failu.

Šeit iekšējā bufera noklusējuma lielums ir 8192 baiti. Tomēr mēs varam norādīt arī iekšējā bufera lielumu.

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

Buferis palīdzēs ātrāk rakstīt baitus failos.

BufferedOutputStream metodes

BufferedOutputStreamKlase nodrošina implementācijas dažādām metodēm OutputStreamklasē.

write () metode

  • write() - izejas straumes iekšējā buferī raksta vienu baitu
  • write(byte() array) - raksta baitus no norādītā masīva uz izejas straumi
  • write(byte() arr, int start, int length) - raksta baitu skaitu, kas vienāds ar garumu izejas plūsmai no masīva, sākot no pozīcijas sākuma

Piemērs: BufferedOutputStream, lai ierakstītu datus failā

 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(); ) ) ) 

Iepriekš minētajā piemērā mēs esam izveidojuši buferētu izvades straumi ar nosaukumu output kopā ar FileOutputStream. Izejas straume ir saistīta ar failu output.txt .

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

Lai ierakstītu datus failā, mēs izmantojām write()metodi.

Šeit, palaižot programmu, fails output.txt tiek aizpildīts ar šādu saturu.

 This is a line of text inside the file. 

Piezīme : Programmā getBytes()izmantotā metode pārveido virkni baitu masīvā.

flush () metode

Lai notīrītu iekšējo buferi, mēs varam izmantot flush()metodi. Šī metode liek izejas straumei visus buferī esošos datus ierakstīt mērķa failā. Piemēram,

 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(); ) ) ) 

Rezultāts

 Dati tiek izdzēsti failā. 

Palaižot programmu, fails flush.txt tiek aizpildīts ar tekstu, ko attēlo virknes dati.

aizvērt () metode

Lai aizvērtu buferēto izvades straumi, mēs varam izmantot close()metodi. Kad metode ir izsaukta, mēs nevaram izmantot izvades plūsmu datu rakstīšanai.

Lai uzzinātu vairāk, apmeklējiet Java BufferedOutputStream (oficiālā Java dokumentācija).

Interesanti raksti...