Mi a bufferelés előnye?
sobes.tech MI
Válasz az MI-től
A Java I/O-ban a pufferelés csökkenti az alacsony szintű bemenet/kimenet műveletekhez való hozzáférések számát, ami jelentősen növeli a teljesítményt. Nagy adatsorok olvasása/írása egy rendszerhívással hatékonyabb, mint sok kis művelet.
Olvasáskor: a BufferedInputStream az alapfolyamból olvassa az adatokat a pufferbe. Kis adatmennyiségek kérésénél azokat a pufferből veszi, anélkül, hogy minden alkalommal hozzáférne a forráshoz (lemez, hálózat). Csak akkor olvas újra, amikor a puffer kiürül.
Íráskor: a BufferedOutputStream először az adatokat a pufferbe írja. A tényleges írás az alapfolamba akkor történik, amikor a puffer megtelik vagy a flush() metódus hívásra kerül. Ez minimalizálja a rendszerhívások számát.
Előnyök:
- Költségcsökkentés: Csökkenti az OS és a hardver hozzáféréseinek számát.
- Sávszélesség növelése: Nagy blokkokban továbbítja az adatokat.
- Teljesítmény javítása: Az összes bemenet/kimenet művelet időtartama csökken.
A BufferedInputStream használatának példája:
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) {
// Olvasott bájt feldolgozása
System.out.print((char) data);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}