Giáo án - Bài giảng: LẬP TRÌNH JAVA NÂNG CAO - LUỒNG NHẬP XUẤT VÀ XỬ LÝ FILE

46 995 1
Giáo án - Bài giảng: LẬP TRÌNH JAVA NÂNG CAO - LUỒNG NHẬP XUẤT VÀ XỬ LÝ FILE

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

LẬP TRÌNH JAVA NC Chương 03: LUỒNG NHẬP XUẤT XỬ FILE Lê Tân Bộ môn: Lập trình máy tính Nội dung của chương 03 ✦ Phân tuyến đa tuyến ✦ Khái niệm luồng nhập xuất ✦ Lớp FileFile văn bản file nhị phân ✦ Nhập xuất file văn bản ✦ Nhập xuất file nhị phân ✦ Xử file dữ liệu nhị phân Phân tuyến đa tuyến ✦ Lập trình đa tuyến là một đặc trưng của Java ✦ Phân tuyến là đơn vị nhỏ nhất của đoạn mã có thể thi hành được để thực hiện một công việc riêng biệt nào đó ✦ Đa tuyến là khả năng làm việc với nhiều tuyến ✦ Đa tuyến chuyên sử dụng cho việc thực thi nhiều công việc đồng thời ✦ Đa tuyến giảm thời gian rỗi của hệ thống đến mức thấp nhất. Tạo quản tuyến ✦ Khi chương trình Java thực thi hàm main() tức là tuyến main được thực thi. Tuyến này được tạo ra một cách tự động, tại đây : - Các tuyến con sẽ được tạo ra từ đó - Tuyến main là tuyến cuối cùng kết thúc việc thực hiện. Ngay sau khi tuyến chính ngừng thực thi, chương trình sẽ chấm dứt . ✦ Tuyến có thể được tạo ra bằng 2 cách: – Dẫn xuất từ lớp Thread – Dẫn xuất từ Runnable. Tạo quản tuyến (tt) ✦ Có hai cách tạo thread: Thừa kế từ lớp Thread, hoặc thực hiện giao diện Runnable ✦ Thừa kế từ lớp Thread, gọi thực hiện bằng start(): public class ClassName extends Thread { . . . } ✦ Thực hiện giao diện Runnable: public class ClassName implements Runnable { . . . } Thread myThread = new Thread(new ClassName()); ✦ Cài đặt phương thức run() để thực hiện tất cả các công việc của thread. Ví dụ: Thừa kế từ lớp Thread public class Phantuyen{ public static void main(String[] arg){ MyThread th1 = new MyThread("Day la thread 1"); MyThread th2 = new MyThread("Day la thread 2"); th1.start();th2.start(); } } class MyThread extends Thread { String s; public MyThread(String s1){ s = s1; } public void run(){ for (int i = 1;i<=10;i++){ System.out.println(s); try{sleep(100);}catch (Exception e){} } } } Cài đặt giao diện Runnable public class Giaodien{ public static void main(String[] arg){ Thread th1 = new Thread(new MyThread("Day la thread 1")); Thread th2 = new Thread(new MyThread("Day la thread 2")); th1.start();th2.start(); } } class MyThread implements Runnable { String s; public MyThread(String s1){ s = s1; } public void run(){ for (int i = 1;i<=10;i++){ System.out.println(s); try{Thread.sleep(100);}catch (Exception e){} }}} Vòng đời của một tuyến Trạng thái của tuyến các phương thức của lớp tuyến ✦ Trạng thái: – born – ready to run – running – sleeping – waiting – ready – blocked – dead ✦ Phương thức: – start( ) – sleep( ) – wait( ) – notify( ) – run( ) – stop( ) Các phương thức khác ✦ enumerate(Thread t) ✦ getName( ) ✦ isAlive( ) ✦ getPriority( ) ✦ setName(String name) ✦ join( ) ✦ isDaemon( ) ✦ setDaemon(Boolean on) ✦ resume( ) ✦ sleep( ) ✦ start( ) [...]... – Khi chương trình đọc luồng nhập, các byte nhập được đọc vào vùng đệm nhập Vùng đệm nhập/ xuất (tt…) 3 3 3 3 Trong trường hợp vùng đệm kết xuất, một chương trình ghi ra một luồng Dữ liệu kết xuất đựơc lưu trữ trong một vùng đệm kết xuất Dữ liệu được lưu trữ cho đến khi vùng đệm trợ nên đầy, hay luồng kết xuất được xả trống Kết thúc, vùng đệm kết xuất được chuyển gửi đến đích của luồng xuất Lớp BufferedInputStream... tác nhập xuất file: – File – FileDescriptor – FileInputStream – FileOutputStream Các lớp File, FileDescriptor, RandomAccessFile được sử dụng hỗ trợ trực tiếp hoặc truy cập nhập/ xuất ngẫu nhiên Lớp tập tin 3 3 3 3 Được sử dụng truy cập các đối tượng tập tin thw mục Những tập tin có tên được đặt tên theo qui ước của hệ điều hành chủ Lớp này cung cấp phương thức khởi tạo để tạo ra các thư mục và. .. OutputStream cung cấp phương thức ‘finalize( )’ ‘getFD( )’ Nhập xuất lọc 3 Lọc: – Là kiểu luồng sửa đổi cách điều quản một luồng hiện có – Về cơ bản được sử dụng để thích ứng các luồng theo các nhu cầu của chương trình cụ thể – Bộ lọc nằm giữa luồng nhập luồng xuất – Thực hiện một số tiến trình đặt biệt trên các byte được chuyển giao từ đầu vào đến đầu ra – Có thể phối hợp để thực hiện một... lọc, sau đó phản hồi đến đối tượng ‘OutputStream’ Vùng đệm nhập/ xuất 3 3 Vùng đệm: – Là kho lưu trữ dữ liệu – Có thể cung cấp dữ liệu thay vì quay trợ lại nguồn dữ liệu gốc ban đầu – Java sử dụng vùng đệm nhập kết xuất để tạm thời lập cache dữ liệu được đọc hoặc ghi vào một luồng Trong khi thực hiện vùng đệm nhập: – Số lượng byte lớn được đọc cùng thời điểm, lưu trữ trong một vùng đệm nhập. .. lợi ích cho đa tuyến Trình biên dịch Java từ Sun không chứa nhiều phương thức đồng bộ Các phương thức đồng bộ chậm hơn từ ba đến bốn lần so với các phương thức tương ứng không đồng bộ Luồng nhập xuất 3 3 3 3 Các luồng là những đường ống dẫn để gửi nhận thông tin trong các chương trình java Khi một luồng đọc hoặc ghi , các luồng khác bị khoá Nếu lỗi xẩy ra trong khi đọc hoặc ghi luồng, một ngoại lệ... OutputStream 3 3 3 3 Là lớp trừu tượng Định nghĩa cách ghi dữ liệu vào luồng Cung cấp tập các phương thức trợ giúp trong việc tạo, ghi xử các luồng xuất Các phương thức: – – – – – write(int) write(byte[ ]) write(byte[ ], int, int) flush( ) close( ) Nhập mảng các Byte 3 3 3 Sử dụng các đệm bộ nhớ Lớp ByteArrayInputStream Tạo ra một luồng nhập từ đệm bộ nhớ không gì cả về mảng các byte – Không hỗ trợ... của tất cả các lớp luồng nhập đã lọc Cung cấp khả năng tạo ra một luồng từ luồng khác Một luồng có thể đọc cung cấp cung cấp dưới dạng kết xuất cho luồng khác Duy trì một dãy các đối tượng của lớp ‘InputStream’ Cho phép tạo ra nhiều bộ lọc kết xích (chained filters) Lớp FilterOutputStream 3 3 3 3 Là dạng bổ trợ cho lớp ‘FilterInputStream’ Là cha của tất cả các lớp luồng kết xuất Duy trì đối tượng... – – read( ) reset( ) skip( ) mark( ) markSupported( ) close( ) ready( ) 3 Lớp Writer: – write( ) – flush( ) – close( ) Nhập/ xuất chuỗi mảng ký tự 3 3 3 3 Hỗ trợ nhập xuất từ các vùng đệm bộ nhớ Hỗ trợ 8 bít ký tự nhập xuất Lớp ‘CharArrayReader’ không bổ sung phương thức mới vào các phương thức mà lớp ‘Reader’ cung cấp Lớp ‘CharArrayWriter’ bổ sung các phương thức sau: – – – – – reset( ) size(... xẩy ra trong khi đọc hoặc ghi luồng, một ngoại lệ sẽ kích hoạt Lớp java. lang.System’ định nghĩa luồng nhập xuất chuẩn Các lớp luồng I/O 3 3 3 Lớp System.out Lớp System.in Lớp System.err Lớp InputStream 3 3 3 3 Là lớp trừu tượng Định nghĩa cách nhận dữ liệu Cung cấp một số phương thức dùng để đọc các luồng dữ liệu làm đầu vào Các phương thức: – read( ) – available( ) – close ( ) – mark ( )... ‘skip()’, ‘available()’ ‘reset()’ Xuất mảng các Byte 3 3 Sử dụng các vùng đệm bộ nhớ Lớp ByteArrayOutputStream – Tạo ra một luồng kết xuất trên mảng byte – Cung cấp các khả năng bổ sung cho mảng kết xuất tăng trưởng nhằm chừa chỗ cho dữ liệu mới ghi vào – Cũng cung cấp các phương thức để chuyển đổi luồng tới mảng byte, hay đối tượng String – – – reset( ) size( ) writeTo( ) Các lớp nhập/ xuất tập tin 3 3 . ✦ File văn bản và file nhị phân ✦ Nhập xu t file văn bản ✦ Nhập xu t file nhị phân ✦ Xử lý file dữ liệu nhị phân Phân tuyến và đa tuyến ✦ Lập trình đa tuyến là một đặc trưng của Java ✦ Phân tuyến. LẬP TRÌNH JAVA NC Chương 03: LUỒNG NHẬP XU T VÀ XỬ LÝ FILE Lê Tân Bộ môn: Lập trình máy tính Nội dung của chương 03 ✦ Phân tuyến và đa tuyến ✦ Khái niệm luồng nhập xu t ✦ Lớp File ✦ File văn. trình java. ✦ Khi một luồng đọc hoặc ghi , các luồng khác bị khoá. ✦ Nếu lỗi xẩy ra trong khi đọc hoặc ghi luồng, một ngoại lệ sẽ kích hoạt. ✦ Lớp java. lang.System’ định nghĩa luồng nhập và xu t

Ngày đăng: 16/04/2014, 14:26

Từ khóa liên quan

Mục lục

  • LẬP TRÌNH JAVA NC

  • Nội dung của chương 03

  • Phân tuyến và đa tuyến

  • Tạo và quản lý tuyến

  • Tạo và quản lý tuyến (tt)

  • Ví dụ: Thừa kế từ lớp Thread

  • Cài đặt giao diện Runnable

  • Vòng đời của một tuyến

  • Trạng thái của tuyến và các phương thức của lớp tuyến

  • Các phương thức khác

  • Phân chia thời gian giữa các tuyến

  • Tuyến Daemon(ngầm)

  • Sự đồng bộ tuyến

  • Mã đồng bộ

  • Khuyết điểm của các phương thức đồng bộ

  • Luồng nhập xuất

  • Các lớp luồng I/O

  • Lớp InputStream

  • Lớp OutputStream

  • Nhập mảng các Byte

Tài liệu cùng người dùng

Tài liệu liên quan