JAVA CORE - Trang 185

!

%

(

$

+

%

%

)

%

Dùng lớp PrinterWriter

Giới thiệu

Trong buổi học trước, chúng ta đã học về các dòng Synchronized. ngăn các dòng

xẩy ra việc chia sẽ (dùng chung) các đối tượng một cách đồng thời. Toàn bộ tiến trình này
được quản lý bởi cơ chế đợi thông báo (wait-notify). Phương thức wait() báo cho dòng gọi
từ bỏ monitor và nhập vào trạng thái ngủ cho đến khi các dòng khác nhập vào cùng
monitor và gọi phương thức notify(). Phương thức notify() và notifyAll() tạo ra dòng thông
báo cho các dòng khác gọi phương thức wait() của cùng đối tượng. Trong bài học trước,
chúng ta cũng học về các điều kiện bế tắc là gì và cách tránh chúng.

Chương này giới thiệu khái niệm về luồng. Chúng ta cũng thảo luận các lớp khác

nhau trong gói java.io trợ giúp các tác vụ nhập xuất.

Các luồng

Theo thuật ngữ chung, luồng là một dòng lưu chuyển. trong thuật ngữ về kỹ thuật

luồng là một lộ trình mà dữ liệu được truyền trong một chương trình. Một ứng dụng về các
luồng ma ta đã quen thuộc đó là luồng nhập System.in .

Luồng là những dàn ống (pipelines) để gửi và nhận thông tin trong các chương trình

java. Khi một luồng dữ liệu được gửi hoặc nhân, ta tham chiếu nó như đang “ghi” và “đọc”
một luồng theo thứ tự nêu trên. Khi một luồng được đọc hay ghi, các dòng khác bị phong
toả. Nếu có một lỗi xẩy ra khi đọc hay ghi luồng, một IOexception được kích hoạt. Do vậy,
các câu lệnh luồng phải bao gồm khối try-catch.

Lớp ‘java.lang.System’ định nghĩa các luồng nhập và xuất chuẩn. chúng là

các lớp chính của các luồng byte mà java cung cấp. Chúng ta cũng đã sử dụng các
luồng xuất để xuất dữ liệu và hiển thị kết quả trên màn hình. Luồng I/O bao
gồm:
:

Lớp System.out: Luồng xuất chuẩn dùng để hiển thị kết quả trên màn hình.
Lớp System.in: Luồng nhập chuẩn thường đến từ bàn phím và được dùng để đọc

các ký tự dữ liệu.

Lớp System.err: Đây là luồng lỗi chuẩn.

Các lớp ‘InputStream’ và ‘OutputStream’ cung cấp nhiều khả năng I/O khác nhau. Cả
hai lớp này có các lớp con để thực hiện I/O thông qua các vùng đệm bộ nhớ, các tập
tin và ống dẫn. Các lớp con của lớp InputStream thực hiện đầu vào, trong khi các lớp
con của lớp OutputStream thực hiện kết xuất.

Gói java.io
Các luồng hệ thống rất có ích. Tuy nhiên, chúng không đủ mạnh để dùng khi ứng phó với
I/O thực tế. Gói java.io phải được nhập khẩu vì mục đích này. Chúng ta sẽ thảo luận tìm
hiểu về các lớp thuộc gói java.io.
9.3.1 Lớp InputStream
Lớp InputStream là một lớp trừu tượng. Nó định nghĩa cách nhận dữ liệu. Điểm quan
trọng không nằm ở chổ dữ liệu đế từ đâu, mà là nó có thể truy cập. Lớp InputStream cung
cấp một số phương pháp để đọc và dùng các luồng dữ liệu để làm đầu vào. Các phương

Liên Kết Chia Sẽ

** Đây là liên kết chia sẻ bới cộng đồng người dùng, chúng tôi không chịu trách nhiệm gì về nội dung của các thông tin này. Nếu có liên kết nào không phù hợp xin hãy báo cho admin.