logo

Java BufferedOutputStream klase

Java programmā BufferedOutputStream tiek izmantota, lai efektīvāk rakstītu datus izvades straumē. Tas pievieno buferi citai izvades straumei, samazinot I/O operāciju skaitu, īslaicīgi saglabājot datus atmiņā pirms to ierakstīšanas galamērķī (piemēram, failā).

Tas pieder pakotnei java.io un paplašina FilterOutputStream klasi.

Klases deklarācija

publiskā klase BufferedOutputStream paplašina FilterOutputStream



kā kārtot masīvu sarakstu Java
  • Uzlabo I/O veiktspēju, izmantojot buferi, lai samazinātu tiešu piekļuvi diskam.
  • Dati tiek ierakstīti buferī un tikai tad, kad buferis ir pilns (vai izskalots), tie tiek nosūtīti uz pamatā esošo izvades plūsmu.
  • Parasti izmanto kopā ar FileOutputStream.
  • Palīdz rakstīt baitu datus, piemēram, attēlu teksta failus un bināros datus.

Konstruktori

  • BufferedOutputStream (OutputStream out): Izveido buferizētu izvades straumi ar noklusējuma bufera lielumu 8192 baiti.
  • BufferedOutputStream (OutputStream izejas iekšējais izmērs): Izveido buferizētu izvades straumi ar norādīto bufera izmēru.

Svarīgas metodes

MetodeApraksts
void write(int b)Ieraksta vienu baitu izvades straumē.
void write(byte[] b int off int len)Ieraksta daļu no baitu masīva izvades straumē.
void flush()Izskalo buferi un liek ierakstīt visus buferizētos izvades baitus.
void close()Aizver straumi, vispirms to izskalojot.

Java
import java.io.*; public class BufferedOutputStreamExample {  public static void main(String[] args) {  String data = 'BufferedOutputStream in Java Example';  try {  FileOutputStream fileOut = new FileOutputStream('output.txt');  BufferedOutputStream bufferOut = new BufferedOutputStream(fileOut);  byte[] bytes = data.getBytes();  bufferOut.write(bytes);  bufferOut.close();  System.out.println('Data written successfully.');  } catch (IOException e) {  e.printStackTrace();  }  } } 

Izvade (faila output.txt saturs):

BufferedOutputStream Java piemērā

2. piemērs: flush() metodes izmantošana

Java
import java.io.*; public class FlushExample {  public static void main(String[] args) {  try {  FileOutputStream fileOut = new FileOutputStream('flush.txt');  BufferedOutputStream bufferOut = new BufferedOutputStream(fileOut);  bufferOut.write('Hello'.getBytes());  bufferOut.flush(); // ensures data is written immediately  bufferOut.close();  System.out.println('Flush example completed.');  } catch (IOException e) {  e.printStackTrace();  }  } } 

Izvade (faila flush.txt saturs):

Sveiki

iestatīts java

Java
import java.io.*; public class LargeDataExample {  public static void main(String[] args) {  try {  FileOutputStream fileOut = new FileOutputStream('large.txt');  BufferedOutputStream bufferOut = new BufferedOutputStream(fileOut 8192); // custom buffer size  for (int i = 0; i < 1000; i++) {  bufferOut.write(('Line ' + i + 'n').getBytes());  }  bufferOut.close();  System.out.println('Large data written successfully.');  } catch (IOException e) {  e.printStackTrace();  }  } } 

Izvade (faila large.txt pirmo rindiņu saturs):

0. rindiņa

1. rindiņa

2. rindiņa

...

python inicializācijas saraksts

Priekšrocības

  • Ātrāka rakstīšanas veiktspēja salīdzinājumā ar nebuferētām straumēm.
  • Samazina fizisko rakstīšanas darbību skaitu.
  • Ļauj efektīvi ierakstīt lielus datus.
Izveidojiet viktorīnu