Tôi đã đi qua một số tài liệu về Java IO và chỉ muốn chắc chắn rằng liệu tôi có được quyền này:Buffered và Unbuffered Streams trong Java
Unbuffered Input Streams: FileInputStream, InputStreamReader, FileReader
Output Unbuffered Streams: FileOutputStream, OutputStreamWriter, FileWriter
đệm Output Streams: PrintStream, PrintWriter
Ngoài ra, chúng tôi có các luồng BufferedInputStream, BufferedOutputStream, BufferedReader và BufferedWriter để chuyển đổi các luồng không được lọc thành các phiên bản đệm.
Cuối cùng, tôi quan sát thấy đối với Luồng ký tự, viz. InputStreamReader, FileReader, OutputStreamWriter, FileWriter, một bộ đệm byte bên trong được duy trì cho các byte trước khi chúng được gửi vào luồng. Bộ đệm byte này không nằm dưới sự kiểm soát của chúng ta. Do đó, đối với các luồng ký tự, bộ đệm đề cập đến bộ đệm ký tự cấp cao để lưu trữ các ký tự vào và ra khỏi chương trình.
Mọi thứ tôi đã nói đều đúng không?
P.S. - Tôi hiểu rằng vấn đề đệm này có phần thi phụ thuộc, nhưng tôi chỉ muốn xác nhận những gì các javadocs đang nói
Nghe có vẻ ít nhiều đúng, nhưng bạn nên dựa vào những gì nó nói trong Javadoc, không phải những gì người khác nói. Việc triển khai có nghĩa vụ phải làm những gì nó nói trong Javadoc. Bạn đã bỏ qua 'ObjectOutputStream,' cả hai đều là và không được đệm, tùy thuộc vào chính xác nó đang làm gì. Bạn cũng đã thoát ra khỏi luồng Lọc và trình đọc. – EJP
Chưa đi xa đến vậy;) – Chatterjee
Tôi thích câu hỏi này. Không có vấn đề để giải quyết, chỉ cần tìm kiếm sự hiểu biết. Đó là làm mới. –