Šajā apmācībā mēs ar piemēru palīdzību uzzināsim par Java BufferedOutputStream un tā metodēm.
BufferedOutputStream
No klases java.io
paketē tiek lietots kopā ar citiem izvades plūsmām, lai rakstītu datus (baitos) efektīvāk.
Tas paplašina OutputStream
abstrakto klasi.
BufferedOutputStream darbs
BufferedOutputStream
Uztur 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.BufferedOutputStream
pakete. 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 BufferdOutputStream
nosauktu buferi ar FileOutputStream
nosaukto 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
BufferedOutputStream
Klase nodrošina implementācijas dažādām metodēm OutputStream
klasē.
write () metode
write()
- izejas straumes iekšējā buferī raksta vienu baituwrite(byte() array)
- raksta baitus no norādītā masīva uz izejas straumiwrite(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).