
Bài giảng Công nghệ Java: Chương 8 - Trần Quang Diệu
lượt xem 4
download

Cùng nắm kiến thức trong chương này thông qua việc tìm hiểu các nội dung sau: Stream concepts, Input Streams, Output Streams, Reader, Writer, Object Serialization, Object Input, Stream Object, Output Stream,...
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Công nghệ Java: Chương 8 - Trần Quang Diệu
- CÔNG NGHỆ JAVA CH8. JAVA INPUT/OUTPUT Quang Dieu Tran PhD 03/06/18 1
- INPUT/OUTPUT STREAMS 1. Stream concepts 2. Input Streams 3. Output Streams 4. Reader 5. Writer 6. Object Serialization 7. Object Input Stream 8. Object Output Stream 03/06/18 2
- Stream concepts File information Program Memory Network • Data exchange Program • Data exchange type: Character, Object, voice, picture, audio, video... 03/06/18 3
- Stream • Stream: – dòng thông tin giữa 2 tác nhân (mức cao) – một dãy tuần tự các byte (mức thấp) • Một stream được gắn với một nguồn (source), hay một đích (destination) • Stream operations: – open stream – close stream – read – write – seek • Input stream: support reading functions • Output stream: support writing functions • Filter stream: buffer 03/06/18 4
- Input & Output Stream Hình 1: Chương trình xử lý dữ liệu từ 1 input stream Hình 2: Chương trình ghi dữ liệu ra output stream 03/06/18 5
- Trình tự đọc/ ghi dòng open input stream while (more information){ Đọc thông tin read information process information từ input stream } close input stream open output stream while (more information){ get information from ... Ghi thông tin write information vào output stream } close output stream 03/06/18 6
- Các loại stream trong package java.io • các lớp trong gói java.io được thiết kế gồm 2 nhóm chính: – Nhóm input/output stream, hay nhóm hướng byte – Nhóm reader/writer, hay nhóm hướng ký tự (unicode) 03/06/18 7
- Nhóm input/output stream • Được gọi là nhóm hướng byte, vì thao tác đọc/ghi áp dụng cho 1 hoặc nhiều byte, chỉ giới hạn xử lý các byte 8 bits ISOLatin1. Rất thích hợp khi cần xử lý dữ liệu nhị phân như ảnh, âm thanh, binary files... • Các input stream được mở rộng từ lớp InputStream (Abstract class) • Các output stream được mở rộng từ lớp OutputStream (Abstract class) 03/06/18 8
- Nhóm input stream 03/06/18 9
- Nhóm output stream 03/06/18 10
- Nhóm reader/writer • Được gọi là nhóm hướng ký tự, vì thao tác đọc/ghi áp dụng cho 1 hoặc nhiều ký tự Unicode (1 character = 2bytes) 03/06/18 11
- Nhóm Writer 03/06/18 12
- Các loại các stream (tt) • java IO cũng cung cấp cách thức kết gắn stream với các loại tác nhân khác như bộ nhớ, file ... • Các lớp InputStreamReader và OutputStreamWriter cung cấp sự chuyển đổi giữa stream và reader/writer • Xem bảng phân loại tóm tắt để biết thêm chi tiết 03/06/18 13
- Tổng quát về các Streams I/O Streams Mô tả khái quát Memory CharArrayReader Đọc/ghi từ/vào bộ nhớ. CharArrayWriter Tạo stream từ một mảng, tiếp theo dùng các ByteArrayInput- phương thức đọc/ghi để đọc/ghi từ/vào mảng. Stream ByteArrayOutput- Tác vụ đọc sẽ lấy dữ liệu từ mảng Stream Tác vụ ghi sẽ ghi ra mảng StringReader StringReader để đọc các ký tự từ một StringWriter String trong bộ nhớ. StringBuffer- StringWriter để ghi vào String. InputStream StringBufferInputStream tương tự như StringReader. Sự khác biệt chỉ là StringBufferInputStream đọc các bytes từ một đối tượng StringBuffer 03/06/18 14
- Tổng quát về các Streams PipedReader Hiện thực các thành phần input và PipedWriter output của một pipe. Pipes được Pipe PipedInputStream dùng như một kênh truyền, nối PipedOutputStream output của một thread vào input của một thread khác. FileReader Được gọi là các file streams. File FileWriter streams dùng để đọc/ghi từ/vào file File FileInputStream trên file system. FileOutputStream SequenceInput- Nối nhiều input streams thành Stream một input stream. Nối (concatenation) 03/06/18 15
- Tổng quát về các Streams Object ObjectInputStream Dùng khi cần lưu trữ, khôi phục, Serial- ObjectOutputStream hoặc truyền toàn bộ đối tượng. ization Chuyển đổi dạng dữ Thuận tiện khi cần đọc/ghi các liệu DataInputStream kiểu dữ liệu cơ bản (primitive (Data Conver- DataOutputStream data types) như int, double, ... sion) LineNumberReader Counting LineNumberInput- Theo dõi số hàng trong khi đọc Stream 03/06/18 16
- Tổng quát về các Streams Rất thuận tiện khi cần kết xuất, Printing PrintWriter dễ đọc với người. System.out PrintStream là một đối tượng thuộc lớp PrintStream. BufferedReader Đệm dữ liệu trong các thao tác Đệm đọc/ghi. BufferedWriter (Buffer- Đệm dữ liệu cải thiện tốc độ bufferedInput-Stream ing) BufferedOutput-Stream đọc ghi vì giảm số lần truy xuất thiết bị. FilterReader Các lớp abstract này định nghĩa Lọc dữ liệu FilterWriter các giao tiếp cho các filter (Filtering) FilterInputStream streams lọc dữ liệu trong khi FilterOutputStream đọc/ghi. 03/06/18 17
- Tổng quát về các Streams (Converting between Bytes and Characters) OutputStreamWriter InputStreamReader Cặp reader/writer này là cầu nối giữa các byte streams và Chuyển đổi byte ký tự character streams. Một InputStreamReader đọc các bytes từ một InputStream và chuyển các bytes đó thành các ký tự. Một OutputStreamWriter chuyển các ký tự sang các bytes, và ghi các bytes đó vào một OutputStream. Quá trình chuyển đổi sẽ sử dụng bộ mã mặc định nếu không được chỉ định rõ. Gọi System.getProperty("file.encoding") để lấy về tên bộ mã mặc định. 03/06/18 18
- Các lớp IO • InputStream, OutputStream, Reader và Writer là các lớp abstract: – Các lớp input stream được mở rộng từ lớp InputStream – Các lớp reader được mở rộng từ lớp Reader – Các lớp output stream được mở rộng từ lớp OutputStream – Các lớp writer được mở rộng từ lớp Writer • 2 lớp InputStream và Reader cung cấp những phương thức read tương đối giống nhau. • 2 lớp OutputStream và Writer cung cấp những phương thức write tương đối giống nhau. 03/06/18 19
- InputSream • Low-Level Input Stream Purpose of Stream • ByteArrayInputStream Reads bytes of data from an memory array • FileInputStream Reads bytes of data from a file on the local file system • PipedInputStream Reads bytes of data from a thread pipe • StringBufferInputStream Reads bytes of data from a string • SequenceInputStream Reads bytes of data from two or more low-level streams, switching from one stream to the next when the end of the stream is reached • System.in Reads bytes of data from the user console 03/06/18 20

CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Chuyên đề Java: Chương 3 - Nguyễn Hoàng Anh
36 p |
99 |
12
-
Bài giảng Công nghệ Java: Chương 7 - Trần Quang Diệu
44 p |
86 |
8
-
Bài giảng Nhập môn java - Chương 1: Tổng quan ngôn ngữ java
50 p |
90 |
6
-
Bài giảng Lập trình Java: Chương 3 - Java cơ bản (TT)
9 p |
91 |
6
-
Bài giảng Công nghệ Java: Chương 1 - Trần Quang Diệu
35 p |
87 |
6
-
Bài giảng Công nghệ Java: Chương 2 - Trần Quang Diệu
84 p |
57 |
6
-
Bài giảng Công nghệ Java: Chương 6 - Trần Quang Diệu
52 p |
56 |
6
-
Bài giảng Công nghệ Java: Chương 0 - Trần Quang Diệu
6 p |
68 |
5
-
Bài giảng Công nghệ Java: Chương 4 - Trần Quang Diệu
68 p |
51 |
5
-
Bài giảng Công nghệ Java: Chương 5 - Trần Quang Diệu
29 p |
92 |
4
-
Bài giảng Công nghệ Java: Chương 3 - Trần Quang Diệu
24 p |
48 |
4
-
Bài giảng Công nghệ Java: Bài 4.1 - Nguyễn Hữu Thể
27 p |
33 |
3
-
Bài giảng Công nghệ lập trình tích hợp: Chương 0 - TS. Nguyễn Quang Uy
9 p |
21 |
3
-
Bài giảng Công nghệ lập trình tích hợp: Chương 5 - TS. Nguyễn Quang Uy
48 p |
10 |
3
-
Bài giảng Công nghệ lập trình tích hợp: Chương 6 - TS. Nguyễn Quang Uy
45 p |
12 |
3
-
Bài giảng Công nghệ Java: Bài 4.2 - Nguyễn Hữu Thể
52 p |
31 |
1
-
Bài giảng Công nghệ Java: Bài 5 - Nguyễn Hữu Thể
5 p |
30 |
1


Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn
