Tải bản đầy đủ (.ppt) (27 trang)

Tài liệu Chương 5: Các dòng nhập/xuất pptx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (269.55 KB, 27 trang )

Nguyễn Đức Hiển – Bài giảng Lập trình Java
1
Java Object-Oriented Programming

Giảng viên : Nguyễn Đức Hiển

Email :

Website :

Thời lượng

Lý thuyết : 2 tín chỉ (30 tiết)

Thực hành + thảo luận : 1 tín chỉ
Nguyễn Đức Hiển – Bài giảng Lập trình Java
2
Chương 5
Các dòng nhập/xuất
(Input/Output Streams)
Nguyễn Đức Hiển – Bài giảng Lập trình Java
3
Nội dung

Khái niệm

Dòng bộ đệm

Nhập/xuất với tập tin

Tuần tự hóa


Nguyễn Đức Hiển – Bài giảng Lập trình Java
4
Giới thiệu

Dòng (stream) là một sự biểu diễn trừu tượng dữ liệu
được kết nối với một số thiết bị vào hay ra
Nguyễn Đức Hiển – Bài giảng Lập trình Java
5
Java Stream

Hỗ trợ sẵn bộ đệm tự động (buffering)

Hỗ trợ sự biểu diễn của các dòng sử dụng sự trừu
tượng hóa mức cao (khác với bytes)

Đọc/ghi các kiểu dữ liệu đơn nguyên

Đọc/ghi các đối tượng

Định dạng sẵn các dòng ký tự bao gồm sự chuyển đổi qua
lại với các biểu diễn khác (như int, double,…)
Nguyễn Đức Hiển – Bài giảng Lập trình Java
6
Các lớp stream cơ bản

Các lớp stream chính ở trong gói java.io.*

Hai lớp trừu tượng chính

InputStream


int read()

int read(byte[] b)

int read(byte[] b, int off, int len)

OutputStream

void write(int b)

void write(byte[] b)

void write(byte[] b, int off, int len)

Cung cấp chức năng cơ bản cho việc đọc dữ liệu
đến một luồng theo dạng các byte thô
Nguyễn Đức Hiển – Bài giảng Lập trình Java
7
InputStream và OutputStream

Nhiều lớp dẫn xuất tồn tại để cung cấp các chức
năng chuyên dụng.

Các lớp dẫn xuất đáng chú ý:

FileInputStream, FileOutputStream

BufferedInputStream, BufferedOutputStream


ObjectInputStream, ObjectOutputStream

PrintStream

Và còn nhiều hơn
Nguyễn Đức Hiển – Bài giảng Lập trình Java
8
Ví dụ: FileInputStream

Ví dụ chương trình đọc dữ liệu từ một tập tin theo
từng byte (đọc một byte tại một thời điểm).
Nguyễn Đức Hiển – Bài giảng Lập trình Java
9
Các dòng bộ đệm

Ví dụ trước không có hiệu quả bởi vì nó đọc trực tiếp
từ file một byte tại một thời điểm  chậm

Chúng ta có thể dùng lớp BufferedInputStream bao
bọc lớp FileInputStream để đọc khối dữ liệu lớn hơn
và lưu giữ trong một bộ đệm sử dụng cho việc đọc.
Nguyễn Đức Hiển – Bài giảng Lập trình Java
10
Các dòng bộ đệm
File
FileInputStream
BufferedInputStream
Java Program
{



}
BufferedInputStream đọc dữ
liệu từ file trong các khối lớn
và lưu giữ dữ liệu trong một
bộ đệm bên trong
Bộ đệm
Sau đó, bạn có thể đọc dữ liệu
từ BufferedInputStream và dữ
liệu được đọc từ bộ đệm thay vì
trực tiếp từ file trên mỗi lần đọc

×