Javassa BufferedOutputStream-luokkaa käytetään tietojen kirjoittamiseen lähtövirtaan tehokkaammin. Se lisää puskurin toiseen lähtövirtaan, mikä vähentää I/O-toimintojen määrää tallentamalla tiedot väliaikaisesti muistiin ennen sen kirjoittamista kohteeseen (kuten tiedostoon).
Se kuuluu java.io-pakettiin ja laajentaa FilterOutputStream-luokkaa.
Luokkailmoitus
public class BufferedOutputStream laajentaa FilterOutputStreamia
- Parantaa I/O-suorituskykyä käyttämällä puskuria, joka vähentää suoraa levykäyttöä.
- Tiedot kirjoitetaan puskuriin ja vain kun puskuri on täynnä (tai tyhjennetty), se lähetetään alla olevaan lähtövirtaan.
- Yleensä käytetään FileOutputStreamin kanssa.
- Auttaa kirjoittamaan tavutietoja, kuten kuvien tekstitiedostoja ja binääritietoja.
Rakentajat
- BufferedOutputStream(OutputStream out): Luo puskuroidun tulostusvirran, jonka oletuspuskurin koko on 8192 tavua.
- BufferedOutputStream(OutputStream out int size): Luo puskuroidun tulostevirran määritetyllä puskurilla.
Tärkeitä menetelmiä
| Menetelmä | Kuvaus |
|---|---|
void write(int b) | Kirjoittaa yhden tavun lähtövirtaan. |
void write(byte[] b int off int len) | Kirjoittaa osan tavutaulukosta lähtövirtaan. |
void flush() | Tyhjentää puskurin ja pakottaa kaikki puskuroidut lähtötavut kirjoitettaviksi. |
void close() | Sulkee virran huuhtelemalla sen ensin. |
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(); } } }
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(); } } }
Tulos (tulosteen.txt:n sisältö):
java-taulukkolajittelu
BufferedOutputStream Java-esimerkissä
java matematiikka pow
Esimerkki 2: Käytä flush()-menetelmää
Javaimport 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(); } } }
Tulos (flush.txt-tiedoston sisältö):
Hei
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(); } } }
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(); } } }
Tulos (suuri.txt-tiedoston muutaman ensimmäisen rivin sisältö):
Rivi 0
Rivi 1
Rivi 2
desc-taulukko mysql:ssä...
Edut
- Nopeampi kirjoitussuorituskyky puskuroimattomiin streameihin verrattuna.
- Vähentää fyysisten kirjoitustoimintojen määrää.
- Mahdollistaa suurten tietojen kirjoittamisen tehokkaasti.