Danh mục

Bài giảng Ngôn ngữ lập trình Java: Phần 2 - TS. Vũ Hữu Tiến

Số trang: 65      Loại file: pdf      Dung lượng: 3.56 MB      Lượt xem: 19      Lượt tải: 0    
tailieu_vip

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

Thông tin tài liệu:

Tiếp nội dung phần 1, Bài giảng Ngôn ngữ lập trình Java: Phần 2 cung cấp cho người học những kiến thức như: Xử lý nhập/xuất trong; xử lý ngoại lệ trong java; lập trình đa luồng; lập trình giao diện trong java. Mời các bạn cùng tham khảo!
Nội dung trích xuất từ tài liệu:
Bài giảng Ngôn ngữ lập trình Java: Phần 2 - TS. Vũ Hữu Tiến BỘ THÔNG TIN VÀ TRUYỀN THÔNG HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG TS. VŨ HỮU TIẾN ThS. ĐỖ THỊ LIÊN BÀI GIẢNG NGÔN NGỮ LẬP TRÌNH JAVA Mã học phần: INT13108 (03 tín chỉ) Hà Nội, 11/2019 CHƯƠNG 4. XỬ LÝ NHẬP/XUẤT TRONG 4.1. File và luồng dữ liệu Dữ liệu được lưu trữ trong các biến và mảng là tạm thời, nó bị mất khi một biến cục bộ bị mất phạm vi hoặc khi chương trình kết thúc. Để lưu giữ dữ liệu lâu dài, ngay cả sau khi chương trình kết thúc, máy tính sử dụng tập tin (file). Máy tính lưu trữ file trên các thiết bị lưu trữ thứ cấp như đĩa cứng, USB, địa CD,… 1 2 3 4 5 6 ... n Kết thúc file Hình 4. 1 Kích thước file n byte Java xem mỗi tệp như một luồng byte liên tiếp (Hình 4.1). Mỗi hệ điều hành cung cấp một cơ chế để xác định kết thúc của một tệp, chẳng hạn như điểm đánh dấu cuối tệp hoặc số đếm trong tổng số byte trong tệp được ghi lại trong cấu trúc file. Một chương trình Java xử lý một luồng byte chỉ đơn giản là nhận dữ liệu từ hệ điều hành khi đến cuối luồng thì chương trình dừng mà không cần để biết file hoặc luồng được biểu diễn như thế nào. Các luồng dữ liệu được biểu diễn bằng chuỗi nhị phân định dạng theo byte (byte based stream) hoặc chuỗi các ký tự (character stream). Ví dụ, số 5 nếu được lưu dưới dạng nhị phân sẽ là 0000.0101. Nếu số 5 được lưu dưới dạng ký tự thì nó sẽ là các số nhị phân biểu diễn giá trị mã Unicode dùng để mô tả ký tự 5. Cụ thể, ký tự 5 trong bảng mã Unicode có mã là 53. Vì vậy, chuỗi số nhị phân được lưu vào file sẽ là 0000.0000.0011.0101. Sự khác biệt giữa hai cách lưu số 5 này là trong cách thứ nhất, 5 được hiểu là một số nguyên và có thể đọc ra để tính toán còn trong cách thứ hai, 5 được hiểu là ký tự và được sử dụng trong các chuỗi. Ví dụ ‘‘Tom is 5 years old’’. Các file sử dụng luồng nhị phân được gọi là file nhị phân (binary file), còn các file sử dụng luồng ký tự được gọi là file văn bản (text file). File văn bản có thể được đọc bởi các chương trình soạn thảo văn bản, trong khi file nhị phân chỉ có thể đọc bởi các chương trình có thể hiểu được cấu trúc file đó. Chương trình Java mở file bằng cách tạo ra một đối tượng, sau đó đối tượng đó được kết hợp với một luồng byte hoặc luồng ký tự. Chương trình Java xử lý file bằng cách sử dụng các lớp trong gói Java.io. Gói này cung cấp các lớp xử lý luồng dữ liệu như FileInputStream (dùng để ghi luồng byte vào một file), FileOutputStream (dùng để đọc luồng byte từ một file) và FileWriter (dùng để ghi luồng ký tự vào file) và FileReader (dùng để đọc luồng ký tự từ file) được kế thừa từ các lớp InputStream, OutputStream, Reader và Writer tương ứng. 67 Java cũng cung cấp các lớp dùng để xử lý dữ liệu vào/ra là các đối tượng hoặc các dữ liệu cơ bản. Các dữ liệu này về bản chất vẫn được lưu dưới dạng byte hoặc ký tự nhưng đối với người lập trình chúng ta có thể đọc dữ liệu dưới dạng cơ bản int, float,… hoặc String mà không cần quan tâm chúng được chuyển sang dạng byte hoặc dạng ký tự như thế nào. Để xử lý các dữ liệu này, đối tượng của các lớp ObjectInputStream và ObjecOutputStream được dùng cùng với các lớp luồng byte FileInputStream và FileOutputStream. 4.2. Lớp File Đối tượng của lớp java.io.File biểu diễn cho một file hoặc một thư mục mà không biểu diễn nội dung của file. Trong chương trình ta dùng một đối tượng của lớp này để thay cho một chuỗi biểu diễn tên file hoặc tên thư mục. Hầu hết các lớp sử dụng tham số là trên file trong hàm khởi tạo như FileWriter hoặc FileInputStream có thể sử dụng đối tượng File để làm đối số. - Tạo một đối tượng File đại diện cho một file : File f = new File(‘‘MyCode.txt’’) ; - Tạo một thư mục mới : File dir = new File(‘‘Code’’) ; dir.mkdir() ; - Một số phương thức của lớp File : Phương thức Mô tả boolean canread() Trả về giá trị True nếu file có thể đọc bởi chương trình, giá trị False nếu không đọc được. boolean canwrite() Trả về giá trị True nếu file có thể ghi bởi chương trình, giá trị False nếu không ghi được. boolean exists() Trả về giá trị True nếu file hoặc thư mục tồn tại, giá trị False nếu file hoặc thư mục không tồn tại. String getName() Trả về tên của file hoặc thư mục đã được biểu thị bởi pathname trừu tượng này String getParent() Trả về đường dẫn của thư mục chứa file String getPath() Trả về đường dẫn của file boolean isDirectory() Trả về giá trị True nếu đối trượng là tên của thư mục, giá trị False nếu đối tượng không phải là tên thư mục. boolean isFile() Trả về giá trị True nếu đối trượng là tên của một file, giá trị False nếu đối tượng không phải là tên file. long lastModified() Trả về thời điểm sửa file lần cuối cùng. long length() Trả về số byte dữ liệu của file. String[] list() Trả về một mảng các chuỗi chỉ các file và thư mục trong thư mục. Bảng 4. 1 Một số phương thức của lớp file 68 Ví dụ : Yêu cầu người dùng nhập tên file hoặc thư mục và in ra các thông tin của file hoặc thư mục đó. 4.3. Kiến trúc luồng xuất dữ liệu ra file 69 Hình 4. 2 Cấu trúc cây gia phá của lớp xử lý ...

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