Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 27 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
27
Dung lượng
398,5 KB
Nội dung
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 : ndhien@udn.vn 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