Danh mục

Bài giảng Lập trình mạng với Java - Chương 3: Các luồng vào ra

Số trang: 24      Loại file: pdf      Dung lượng: 259.31 KB      Lượt xem: 14      Lượt tải: 0    
tailieu_vip

Hỗ trợ phí lưu trữ khi tải xuống: 15,000 VND Tải xuống file đầy đủ (24 trang) 0

Báo xấu

Xem trước 3 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Chương này giới thiệu khái niệm vào ra bằng các luồng dữ liệu. Trước tiên ta sẽ tìm hiểu về các luồng và ý nghĩa của luồng trong chương trình Java. Tiếp đến chúng ta sẽ lần lượt tìm hiểu các luồng vào ra chuẩn trong gói làm việc với console. Các luồng trừu tượng java.io.InputStream, java.io.OutputStream là các luồng cơ bản để từ đó xây dựng nên các luồng cụ thể. Luồng được chia thành các nhóm như luồng byte và luồng ký tự.
Nội dung trích xuất từ tài liệu:
Bài giảng Lập trình mạng với Java - Chương 3: Các luồng vào raChương 3 Các luồng vào ra1. Khái niệm về luồng trong Java Khi lập bất kỳ chương trình nào trong một ngôn ngữ nào thì vấn đề vào ra dữ liệu giữachương trình và nguồn dữ liệu cũng như đích dữ liệu là vấn đề mà người lập trình cần phảiquan tâm. Làm thế nào để ta có thể truyền dữ liệu cho một chương trình Java. Có hai cáchhiệu quả để thực hiện điều này: • Thông qua một tài nguyên tuần tự nào đó như file hoặc qua một máy tính khác. • Thông qua giao diện người máy. Mục đích của chương này là xem xét cách truyền dữ liệu cho một chương trình thôngqua một máy tính khác hay tập tin.1.1. Khái niệm luồng (stream) Theo nghĩa đen luồng là một đường ống nước. Về mặt thuật ngữ chuyên ngành ta có thể hiểu “Các luồng là các dãy dữ liệu có sắpthứ tự”. Xét trên quan điểm của chương trình và nguồn dữ liệu (Data Soure) ta có thể phânloại luồng thành hai loại: Luồng xuất (output stream) và luồng nhập (input stream). Để trựcquan hơn chúng ta xem hình vẽ dướ đây: InputStream Data Source Program OutputStream Hình 3.1Như vậy nếu chúng ta cần lấy dữ liệu từ nguồn vào chương trình thì cần phải sử dụng luồngnhập. Ngược lại, nếu ta cần ghi dữ liệu từ chương trình ra nguồn dữ liệu thì ta cần phải sửdụng luồng xuất.Ta có thể thấy rằng có rất nhiều luồng dữ liệ, chẳng hạn như từ một tệp tin, từ các thiết bịxuất và nhập chuẩn, từ liên kết mạng. Như vậy một chương trình có thể truy xuất tới nhiiềunguồn dữ liệu. http://www.ebook.edu.vn 59 Console InputStream Thiết bị Chương trình ứng dụng Tệp tin OutputStream Mạng Hình 3.22. Luồng xuất nhập chuẩn • System.out: Luồng xuất chuẩn thường được sử dụng để hiển thị kết quả đầu ra trên màn hình. • System.in: Luồng nhập chuẩn thường đến từ bàn phím và được sử dụng để hiện các ký tự. • System.err: Luồng lỗi chuẩn. Các luồng trên còn được gọi là các luồng hệ thống. Mặc dù các luồng này rất có íchkhi lập trình nhưng chúng không đủ mạnh khi giải quyết các vấn đề vào ra quan trọng khác.Trong các mục tiếp theo ta sẽ tìm hiểu sâu một số luồng trong gói java.io3. Luồnng nhị phân3.1. Lớp InputStream Lớp trừu tượng InputStream khai báo các phương thức để đọc dữ liệu đầu vào từ mộtnguồn cụ thể. Lớp InputStream là lớp cơ sở của hầu hết các luồng nhập trong gói java.io, vànó hỗ trợ các phương thức sau: Các phương thức: • public InpuStream()InputStream chỉ hỗ trợ constructor không tham số. • public abstract int read() throws IOException Phương thức cơ bản của lớp InputStream là phương thức read(). Phương thức này đọc một byte dữ liệu từ luồng nhập và trả về một số kiểu nguyên int có giá trị nằm trong khoảng từ 0 đến 255. Giá trị trả về là -1 khi kết thúc luồng. Phương thức read() chờ và phong tỏa các đoạn mã sau nó cho tới khi một byte dữ liệu được đọc. Việc nhập và xuất diễn ra với tốc độ chậm, vì vậy nếu chương trình của ta thực hiện một công việc khác quan trọng thì tốt nhất là đặt các lệnh nhập xuất vào một tuyến đoạn riêng của nó. Phương thức read() là phương thức trừu tượng bởi vì các lớp con cần thay đổi để thích ích với môi trường cụ thể. • public int read(byte[] b) throws IOException Phương thức này đọc một dãy các byte dữ liệu liên tục từ một nguồn của luồng nhậpvà lưu vào mảng b. • public int read(byte[] b, int offs, int len) throws IOException Phương thức này đọc một dãy các byte dữ liệu và lưu vào mảng b, vị trí bắt đầu lưu dữ liệu là offs và lưu len byte dữ liệu http://www.ebook.edu.vn 60 • public int available() throws IOException Phương thức này cho biết còn bao nhiêu byte dữ liệu trong luồng. • public long skip(long count) throws IOException Phương thức skip(long count) bỏ qua long byte dữ liệu • public synchronized void mark(int readLimit) Phương thức này được sử dụng để dánh dấu vị trí hiện thời trong luồng • public void reset() throws IOException Phương thức này xác định lại vị trí luồng là vị trí đánh dấu lần gần đây nhất. • public boolean markSupported() Phương thức này trả về giá trị true nếu luồng này hỗ trợ ...

Tài liệu được xem nhiều: