Như đã thấy trong các ví dụ trước đó trong cuốn sách này, runTest () được sử dụng bởi các phương pháp Mẫu để tạo ra một khuôn khổ thử nghiệm cho việc triển khai khác nhau của thử nghiệm () được định nghĩa trong lớp con bên trong vô danh. Mỗi một lớp con thực hiện một loại xét nghiệm, do đó, các thử nghiệm () phương pháp này cũng cung cấp cho bạn một nguyên mẫu để thực hiện các hoạt động I / O khác nhau.
Mặc dù một ghi ánh xạ sẽ dường như sử dụng một FileOutputStream, tất cả các đầu ra trong tập tin bản đồ phải sử dụng một RandomAccessFile , chỉ là đọc / ghi nào trong mã trước.
Chú ý rằng các thử nghiệm () phương pháp kể thời gian khởi tạo của đối tượng I / O khác nhau, vì vậy mặc dù các thiết lập cho các file ánh xạ có thể tốn kém, mức tăng tổng thể so với dòng I / O là đáng kể.
Tập thể dục 25: (6) Các thử nghiệm với việc thay đổi ByteBuffer.allocate () báo cáo trong các ví dụ trong chương này để ByteBuffer.allocateDirect (). Thể hiện sự khác biệt hiệu suất, nhưng cũng để ý xem thời gian khởi động của các chương trình đáng chú ý thay đổi.
Tập thể dục 26: (3) Sửa đổi chuỗi / JGrep.java để sử dụng Java file memorymapped nio. Tập tin khóa
tập tin khóa cho phép bạn đồng bộ các quyền truy cập vào một tập tin như là một nguồn tài nguyên chia sẻ. Tuy nhiên, hai chủ đề mà tranh cho cùng một tập tin có thể được trong các JVM khác nhau, hoặc một có thể là một chủ đề Java và một số chủ đề khác có nguồn gốc trong hệ điều hành. Các khóa tập tin có thể nhìn thấy quá trình hệ điều hành khác vì file Java khóa bản đồ trực tiếp đến cơ sở hệ điều hành khóa bản địa.
Dưới đây là một ví dụ đơn giản của khóa tập tin.
đang được dịch, vui lòng đợi..
