# Java Byte I/O - Luồng Byte trong Java Các luồng byte được định nghĩa dùng hai lớp phân cấp. Mức trên cùng là hai lớp trừu tượng `InputStream` và `OutputStream`: - InputStream định nghĩa những đặc điểm chung cho những luồng nhập byte. - OutputStream mô tả cách xử lý của các luồng xuất byte. [![java-streams.png](https://laptrinh.vn/uploads/images/gallery/2020-04/scaled-1680-/java-streams.png)](https://laptrinh.vn/uploads/images/gallery/2020-04/java-streams.png) Các lớp con dẫn xuất từ hai lớp InputStream và OutputStream sẽ hỗ trợ chi tiết tương ứng với việc đọc ghi dữ liệu trên những thiết bị khác nhau. Đừng choáng ngợp với hàng loạt rất nhiều các lớp khác nhau. Đừng quá lo lắng, mỗi khi bạn nắm vững, sử dụng thành thạo một luồng byte nào đó thì bạn dễ dàng làm việc với những luồng còn lại.
**\#** **Lớp luồng byte** **Ý nghĩa**
1BufferedInputStream Buffered input stream
2BufferedOutputStream Buffered output stream
3ByteArrayInputStream Input stream đọc dữ liệu từ một mảng byte
4ByteArrayOutputStream Output stream ghi dữ liệu đến một mảng byte
5DataInputStream Luồng nhập có những phương thức đọc những kiểu dữ liệu chuẩn trong java
6DataOutputStream Luồng xuất có những phương thức ghi những kiểu dữ liệu chuẩn trong java
7FileInputStream Luồng nhập cho phép đọc dữ liệu từ file
8FileOutputStream Luồng xuất cho phép ghi dữ liệu xuống file
9FilterInputStream Hiện thực lớp trừu tượng InputStream
10FilterOutputStream Hiện thực lớp trừu tượng OutputStream
11InputStream Lớp trừu tượng, là lớp cha của tất cả các lớp luồng nhập kiểu Byte
12OutputStream Lớp trừu tượng, là lớp cha của tất cả các lớp xuất nhập kiểu Byte
13PipedInputStream Luồng nhập byte kiểu ống (piped) thường phải được gắn với một luồng xuất kiểu ống.
14PipedOutputStream Luồng nhập byte kiểu ống (piped) thường phải được gắn với một luồng nhập kiểu ống để tạo nên một kết nối trao đổi dữ liệu kiểu ống.
15PrintStream Luồng xuất có chứa phương thức print() và println()
16PushbackInputStream Là một luồng nhập kiểu Byte mà hỗ trợ thao tác trả lại (push back) và phục hồi thao tác đọc một byte (unread)
17RandomAccessFile Hỗ trợ các thao tác đọc, ghi đối với file truy cập ngẫu nhiên.
18SequenceInputStream Là một luồng nhập được tạo nên bằng cách nối kết logic các luồng nhập khác.