Các luồng vào / ra
Các luồng vào ra
2
NguyễnViệtHà
Nội dung
Khái niệm về luồng dữ liệu
Luồng và tệp
Lớp File
Truy cập tệp tuần tự
Truy cập tệp ngẫu nhiên
Các luồng vào ra
3
NguyễnViệtHà
Tài liệu tham khảo
Thinking in Java, chapter 12
Java how to program, chapter 17
Các luồng vào ra
4
NguyễnViệtHà
Luồng dữ liệu (data streams)
Chương trình Java nhận và gửi dữ liệu
thông qua các đối tượng là các thực thể
thuộc một kiểu luồng dữ liệu nào đó
int read(byte buf[])
int read(byte buf[], int
offset, int length)
void close()
Các luồng vào ra
7
NguyễnViệtHà
OutputStream
int write(int c)
int write(byte buf[])
int write(byte buf[], int
offset, int length)
void close()
void flush()
Các luồng vào ra
8
NguyễnViệtHà
Reader
int read()
int read(char buf[])
NguyễnViệtHà
Phả hệ của Reader
Các luồng vào ra
13
NguyễnViệtHà
Phả hệ củaWriter
Các luồng vào ra
14
NguyễnViệtHà
Đốitượng vào / ra
Để nhậphoặcxuấtdữ liệu, chúng ta phải
tạora đốitượng vào hoặcra
Đốitượng vào hoặcra thuộckiểuluồng
tương ứng và phải đượcgắnvớimột
nguồndữ liệuhoặcmột đích tiêu thụ dữ
liệu
Các luồng vào ra
15
NguyễnViệtHà
Sử dụng bộđệm
Bộđệmlàmộtkỹ thuật để tăng tính hiệuquả của thao
tác vào / ra
đọc và ghi dữ liệu theo khối
giảm số lần thao tác với thiết bị
Các luồng vào ra
17
NguyễnViệtHà
Đọcdữ liệutừ luồng vào chuẩn
System.in không sử dụng đượctrựctiếp
Chúng ta muốn đọc một dòng ký tự
1.
tạo đối tượng luồng ký tự
(InputStreamReader)
2.
tạo đối tượng luồng có bộ đệm
(BufferedReader)
Các luồng vào ra
18
NguyễnViệtHà
Ví dụ:
InputStreamReader reader = new InputStreamReader(System.in);
BufferedReader in = new BufferedReader(reader);
---
String s;
try {
s = in.readLine();
}
catch (IOException e) {...}