1. Files
lớp học
Để làm việc với các tệp, có một lớp tiện ích bóng bẩy — java.nio.file.Files
. Nó có phương pháp cho mọi dịp. Tất cả các phương thức của lớp này là tĩnh và hoạt động trên đối tượng Path. Có rất nhiều phương pháp, vì vậy chúng tôi sẽ chỉ xem xét những phương pháp quan trọng nhất:
Phương pháp | Sự miêu tả |
---|---|
|
Tạo một tệp mới có đường dẫn làpath |
|
Tạo một thư mục mới |
|
Tạo nhiều thư mục |
|
Tạo một tập tin tạm thời |
|
Tạo một thư mục tạm thời |
|
Xóa một tập tin hoặc thư mục nếu nó trống |
|
Sao chép một tập tin |
|
Di chuyển một tập tin |
|
Kiểm tra xem đường dẫn có phải là thư mục không phải tệp |
|
Kiểm tra xem đường dẫn có phải là tệp chứ không phải thư mục |
|
Kiểm tra xem một đối tượng có tồn tại ở đường dẫn đã cho hay không |
|
Trả về kích thước tệp |
|
Trả về toàn bộ nội dung của tệp dưới dạng một mảng byte |
|
Trả về toàn bộ nội dung của tệp dưới dạng chuỗi |
|
Trả về toàn bộ nội dung của tệp dưới dạng danh sách các chuỗi |
|
Ghi một mảng byte vào một tập tin |
|
Ghi một chuỗi vào một tập tin |
|
Trả về một tập hợp các tệp (và thư mục con) từ thư mục đã cho |
2. Tạo tập tin và thư mục
Tập tin và thư mục rất dễ tạo. Hãy thuyết phục bản thân bằng một số ví dụ:
Mã số | Ghi chú |
---|---|
|
Tạo một tập tin |
|
Tạo một thư mục |
|
Tạo một thư mục và tất cả các thư mục con cần thiết nếu chúng không tồn tại. |
3. Sao chép, di chuyển và xóa
Sao chép, di chuyển và xóa các tập tin thật dễ dàng. Điều này cũng áp dụng cho các thư mục, nhưng chúng phải trống.
Mã số | Ghi chú |
---|---|
|
Sao chép một tập tin |
|
Di chuyển và đổi tên một tập tin |
|
Xóa một tập tin |
4. Kiểm tra loại và sự tồn tại của tệp
Khi bạn có một đường dẫn do người khác cung cấp, bạn muốn biết đó là tệp hay thư mục. Và nói chung, một tập tin/thư mục như vậy có tồn tại hay không?
Có những phương pháp đặc biệt cho việc này là tốt. Bạn cũng có thể dễ dàng tìm ra độ dài của tệp:
Mã số | Ghi chú |
---|---|
|
|
|
|
|
|
|
|
5. Làm việc với nội dung tệp
Cuối cùng, có một loạt các phương pháp giúp dễ dàng đọc hoặc ghi nội dung của tệp. Ví dụ:
Mã số | Sự miêu tả |
---|---|
|
Đọc nội dung của tệp dưới dạng danh sách các chuỗi. Hiển thị các chuỗi |
6. Lấy nội dung của một thư mục
Phương pháp thú vị nhất vẫn còn. Nó được sử dụng để lấy các tệp và thư mục con trong một thư mục nhất định.
Chúng ta đang nói về newDirectoryStream()
phương thức trả về một DirectoryStream<Path>
đối tượng đặc biệt. Nó có một trình vòng lặp (!) mà bạn có thể sử dụng để lấy tất cả các tệp và thư mục con của một thư mục nhất định.
Điều này là dễ dàng hơn nó âm thanh.
Mã số | Sự miêu tả |
---|---|
|
Nhận một đối tượng có danh sách tệp Lặp lại danh sách tệp |
Đối DirectoryStream<Path>
tượng có hai thuộc tính. Đầu tiên, nó có một trình lặp trả về đường dẫn tệp và chúng ta có thể sử dụng đối tượng này bên trong một for-each
vòng lặp.
Và thứ hai, đối tượng này là một luồng dữ liệu, vì vậy nó phải được đóng một cách rõ ràng bằng cách sử dụng phương close()
thức hoặc khai báo sử dụng bên trong một try-with-resources
khối.
7. Files.newInputStream
phương pháp
Bắt đầu với Java 5, các lớp FileInputStream
và FileOutputStream
không được dùng nữa. Một trong những nhược điểm của chúng là khi các đối tượng của các lớp này được tạo ra, các tệp ngay lập tức được tạo trên đĩa. Và tất cả các ngoại lệ liên quan đến việc tạo tệp có thể bị ném.
Sau đó, điều này được công nhận không phải là quyết định tốt nhất. Theo đó, nên sử dụng các phương thức của java.nio.Files
lớp tiện ích để tạo các đối tượng tệp.
Dưới đây là so sánh giữa cách tiếp cận cũ và cách tiếp cận mới để tạo tệp:
Trước |
---|
|
Sau đó |
|
Và có một sự thay thế tương tự cho FileOutputStream
:
Trước |
---|
|
Sau đó |
|
GO TO FULL VERSION