Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 87 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
87
Dung lượng
1,52 MB
Nội dung
Chương 11 INPUT – OUTPUT TRONG JAVA Mục tiêu Hiểu khái niệm dòng Biết lớp đảm nhiệm việc việc xuất nhập liệu Java Biết cách sử dụng lớp io để xuất nhập liệu với hình bàn phím Biết cách xuất nhập liệu với tập tin văn bản, tập tin chứa liệu thuộc kiểu bản, tập tin chứa liệu đối tượng Biết interface lớp quản lý việc in ấn Nội dung 10.1- Giới thiệu 10.2- Dòng liệu 10.3- Gói java.io dịng nhập xuất 10.4- Lớp System thiết bị xuất nhập chuẩn 10.5 – Thí dụ xuất nhập liệu với tập tin văn 10.6- Tóm tắt 10.1- Giới thiệu • Nhập liệu tác vụ đưa liệu cụ thể vào cho biến chương trình Như vậy, phải có nguồn chứa liệu (bàn phím, tập tin, biến khác) • Xuất liệu tác vụ đưa trị cụ thể biến chương trình nơi chứa (màn hình hay file hay biến khác) • Nhập/xuất liệu phương tiện mà chương trình tương tác với user thường thiếu đa số ứng dụng Giới thiệu • Hai chế nhập xuất liệu có tương tác với user: (1) Nhập xuất liệu ứng dụng console application, (2) Nhập/xuất liệu thông qua phần tử GUI Cách thường dùng ứng dụng chạy theo chế cách áp dụng ứng dụng hướng cửa sổ Giới thiệu • Buffered IO : Nhập xuất thơng qua đệm (một vùng vùng nhớ trung gian • Nhập có đệm (buffered Input) : Dữ liệu nhập đệm lại khơng vào biến Thí dụ: Nhập số kết thúc gõ enter • Xuất có đệm (buffered output): Dữ liệu xuất xuất thực đệm đầy gặp tác vụ buộc xuất tường minh (flush) Keyboard Buffer Variable Buffer Screen Giới thiệu • Tập tin liệu mô tả cho thông tin hồn tất Do vậy, tập tin liệu đầu vào chương trình nơi chứa liệu đầu chương trình Hầu hết chương trình lớn có thao tác với tập tin • Khi nhập xuất liệu gây lỗi Exception Thí dụ: Nhập biến số mà gõ chữ, đọc file vào biến mà vị trí đọc cuối file, ghi file mà đĩa hết dung lượng,… Như vậy, xuất nhập liệu, người lập trình cần có biện pháp quản lý lỗi xuất nhập cú pháp try { TácVụNhậpXuất()} catch (Exception e) { System.out.println("Error: " + e.toString()); } 10.2- Dòng- stream • Dòng: Là chuỗi byte làm việc theo chế • Kh niệm dịng xuất phát từ hệ điều hành UNIX • Bàn phím dịng nhập chuẩn, user gõ phím chuỗi byte vào biến • Màn hình dịng xuất chuẩn, liệu từ biến chuyển thành ký tự, ký số byte xuất hình Chuỗi, mảng, file dịng • Chuỗi ký tự, mảng byte chứa liệu chuyển vào cho biến làm việc theo chế chuyển byte Chuỗi, mảng dịng nhập Ngược lại, đưa liệu từ biến chuỗi, mảng Chuỗi, mảng trở thành dòng xuất • File nguồn cung cấp liệu cho biến (file nhập), nơi lưu trữ liệu từ biến (file xuất) File làm việc theo chế byte File dòng Buffer dòng : mảng lưu trữ liệu Dòng nhập Dòng xuất Buffer Buffer Các liệu quản lý Các liệu quản lý data Var1 Dữ liệu dịng xuất lại liệu dòng nhập khác data Buffer Các liệu quản lý Dịng nhập Buffer đóng vai trị trung chuyển liệu Var2 Buffer Các liệu quản lý data Dịng xuất 10.3.14- Lớp CharArrayReader Lớp CharArrayWriter • Hiện thực mảng ký tự (character buffer) cho việc nhập xuất public class CharArrayReader extends Reader public class CharArrayWriter extends Writer public class CharArrayReader extends Reader public class CharArrayWriter extends Reader 10.3.15- Lớp StringReader StringWriter • Dịng nhập xuất thông qua String public class StringReader extends Reader public class StringWriter extends Writer 10.3.16- public class PrintWriter extends Writer • Làm nhiệm vụ xuất liệu bản, biểu diễn đối tượng có định dạng dịng xuất ký tự Lớp PrintWriter void print (x) ; void println(x) với x liệu đối tượng, String 10.4- Gói java.lang lớp System • Gói java.lang gói ngơn ngữ Java (language) • Gói chứa khai báo lớp wrapper Boolean, Char, Integer, • Có lớp System mơ tả cho hệ thống Gói java.lang subclasses: public final class System extends Object • Data static PrintStream err :mơ tả thiết bị xuất lỗi chuẩn (màn hình) static PrintStream out :mơ tả thiết bị xuất chuẩn (màn hình) static PrintStream in :mơ tả thiết bị nhập chuẩn (bàn phím) • Methods Các hành vi lớp System hành vi mức hệ thống truy xuất thời gian, truy xuất thiết lập hệ thống (trong Config.sys), thoát JVM, nạp lớp file, nạp thư viện, kết thúc object, thiết lập thiết bị nhập xuất hệ thống khác với thiết bị xuất nhập chuẩn, lấy/thiết lập chế bảo mật… public final class System extends Object Các method thường dùng: static long currentTimeMillis() lấy hệ thống theo millisec so với 12 đêm ngày 1/1/1970 static long nanoTime() lấy hệ thống theo nanosec (chỉ có từ Java 1.5.0) static void exit(int status) kết thúc JVM static void gc(void) : gọi trình gom rác (garbage collector) static Properties getProperties(void) lấy thiết lập hệ thống (trong Config.sys) Thí dụ truy xuất thơng tin hệ thống Gói java.util chứa lớp Date 10.5- Thí dụ xuất nhập liệu với tập tin văn • Tự tham khảo tài liệu class WriteFile , class IntMatrix 10.6 – Tóm tắt • Gói java.io chứa lớp cho việc xuất nhập liệu • Các dịng xuất nhập chia thành loại: dòng văn bản, dịng byte vật lý • Dịng văn xử lý liệu theo ký tự byte • Dịng byte vật lý xử lý liệu theo byte • Tác vụ nhập xuất gây lỗi runtime nên cần throws IOException • Khi lưu trữ liệu vào dòng, cần chọn định dạng lưu trữ trước để phải đọc đọc liệu ... BufferInputStream Lớp BufferOutputStream 10.3.8- DataInput interface DataOutput interface DataInputStream DataOutputStream • DataInput interface dùng để đọc byte nhị phân từ dòng byte vật lý (InputStream)... 10.3.4- Lớp FileInputStream, FileOutputStream • Là lớp cho việc đọc/ghi file theo byte vật lý • Lớp FileInputStream lớp InputStream • Lớp FileOutputStream lớp OutputStream Lớp FileInputStream •... DataOutput interface lại làm ngược lại mà DataInput interface làm • Hai interface lớp DataInputStream DataOutputStream thực DataInput interface DataOutput interface Minh họa sử dụng DataInputStream