# Java Character I/O - Luồng ký tự trong Java Các luồng ký tự đượ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 Reader và Writer: - Lớp Reader dùng cho việc nhập dữ liệu của luồng - Lớp Writer dùng cho việc xuất dữ liệu cua luồng. Những lớp dẫn xuất từ Reader và Writer thao tác trên các luồng ký tự Unicode. [![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)
\#Lớp luồng ký tự Ý nghĩa
1BufferedReader Luồng nhập ký tự đọc dữ liệu vào một vùng đệm.
2BufferedWriter Luồng xuất ký tự ghi dữ liệu tới một vùng đệm.
3CharArrayReader Luồng nhập đọc dữ liệu từ một mảng ký tự
4CharArrayWriter Luồng xuất ghi dữ liệu tời một mảng ký tự
5FileReader Luồng nhập ký tự đọc dữ liệu từ file
6FileWriter Luồng xuất ký tự ghi dữ liệu đến file
7FilterReader Lớp đọc dữ liệu trung gian (lớp trừu tượng)
8FilterWriter Lớp xuất trung gian trừu tượng
9InputStreamReader Luồng nhập chuyển bytes thành các ký tự
10LineNumberReader Luồng nhập đếm dòng
11OutputStreamWriter Luồng xuất chuyển những ký tự thành các bytes
12PipedReader Luồng đọc dữ liệu bằng cơ chế đường ống
13PipedWriter Luồng ghi dữ liệu bằng cơ chế đường ống
14PrintWriter Luồng ghi văn bản ra thiết bị xuất (chứa phương thức print() và println())
15PushbackReader Luồng nhập cho phép đọc và khôi phục lại dữ liệu
16Reader Lớp nhập dữ liệu trừu tượng
17StringReader Luồng nhập đọc dữ liệu từ chuỗi
18StringWriter Luồng xuất ghi dữ liệu ra chuỗi
19Writer Lớp ghi dữ liệu trừu tượng