Mis on buferdamise eelis?
sobes.tech AI
Vastus AI-lt
Java I/O buferimine vähendab juurdepääsu madala taseme sisendi/väljundi operatsioonidele, mis suurendab märkimisväärselt jõudlust. Suurte andmeplokkide lugemine/Salvestamine ühe süsteemikutsena on tõhusam kui paljude väikeste operatsioonide tegemine.
Lugemisel: BufferedInputStream loeb andmeid põhivoolust buferisse. Kui taotletakse väikeseid andmepartii, need võetakse buferist, mitte nõudes iga kord juurdepääsu allikale (ketas, võrk). Ainult siis, kui bufer on tühi, toimub uus andmeploki lugemine.
Salvestamisel: BufferedOutputStream kirjutab esmalt andmed buferisse. Põhivoolu kirjutamine toimub kas buferi täitmisel või flush() meetodi kutsumisel. See minimeerib süsteemikutsumiste arvu.
Eelised:
- Vähem kulutusi: väheneb juurdepääs OS-ile ja seadmetele.
- Suurenenud läbilaskevõime: andmed edastatakse suurte plokkidena.
- Jõudluse tõus: sisendi/väljundi operatsioonide koguaeg väheneb.
Näide BufferedInputStream kasutamisest:
import java.io.FileInputStream;
import java.io.BufferedInputStream;
import java.io.IOException;
public class BufferedReaderExample {
public static void main(String[] args) {
try (FileInputStream fileInputStream = new FileInputStream("example.txt");
BufferedInputStream bufferedInputStream = new BufferedInputStream(fileInputStream)) {
int data;
while ((data = bufferedInputStream.read()) != -1) {
// Töötle loetud bait
System.out.print((char) data);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}