Буферлөөнин артыкчылыгы эмнеде?
sobes.tech AI
AIден жооп
Java I/O-да буферлөөүү төмөнкү деңгээлдеги кириш-чыгыш операцияларына жасалган кайрылуулар санын азайтып, натыйжада иштөө ылдамдыгын жогору көтөрөт. Үлүштүү маалымат блокторун бир системалык чакырууда окуу/жазуу, кичинекей операцияларга караганда натыйжалуу.
Окууда: BufferedInputStream негизги агымдан маалыматтарды буфердик эсикке окуйт. Кичинекей маалымат бөлүктөрү талап кылынганда, алар буферден алынып, ар бир жолу булакка (диск, тармак) кайрылууну талап кылбайт. Бууфер толгондо гана жаңы маалымат блогу окуулат.
Жазууда: BufferedOutputStream алгач маалыматтарды буферге жазат. Негизги агымга жазуу буфер толгондо же flush() методу чакырылганда болот. Бул жазуу үчүн системалык чакыруулар санын минималдаштырат.
Артыкчылыктары:
- Кошумча чыгымдарды кыскартуу: Операциялык тутумга жана жабдууларга кайрылуулар санын азайтат.
- Өткөрүмдүүлүктү жогорулатуу: Маалыматтар чоң блоктордо өткөрүлөт.
- Иштин натыйжалуулугун жогорулатуу: Жалпы кирүү-чыгуу операцияларынын убактысы кыскарган.
BufferedInputStream колдонуу мисалы:
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) {
// Окуган байтты иштетүү
System.out.print((char) data);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}