Thao tác file cơ bản trong java

Thao tác với tập tin, thư mục trong lập trình java là một công việc mà chúng ta thường hay gặp phải. Trong bài viết này mình xin giới thiệu về File class dùng để thao tác với file(tập tin), folder(thư mục) trong java.

File class đại diện cho một tập tin(file) hoặc một thư mục(folder) trong java, nó cung cấp cho chúng ta rất nhiều method hữu ích để làm việc với file, folder như là:

  • Tạo file 
  • Kiểm tra sự tồn tại của file, folder
  • Tạo folder
  • Lấy độ dài của file
  • Đổi tên hoặc di chuyển file, folder
  • Xóa file, folder
  • Kiểm tra đường dẫn là file hay folder
  • Liệt kê các file, folder chứa trong folder

Tạo file trong java

Trước mọi thao tác với file trong java bạn cần khởi tạo một instance của File class.

Constructor của File class nhận một tham số truyền vào là chuỗi chứa đường dẫn của file mà bạn muốn instance đó tham chiếu đến. Lưu ý rằng đường dẫn này không nhất thiết phải tham chiếu đến một file thực và chúng ta sẽ nhận được exception khi thực hiện thao tác trên file instance khi nó không tồn tại. 

Để đảm bảo chúng ta có thể kiểm tra đường dẫn đến file có tồn tại hay không rồi tiến hành khởi tạo chúng. 

Output:

Run 1: Created!
Run 2: Exists

Kiểm tra sự tồn tại của File, Folder

Chúng ta có thể sử dụng exists() để kiểm tra xem file hoặc folder có tồn tại tại đường dẫn hay không? Như ở trên mình cũng đã có sử dụng chung với tạo file.

Đối với folder để kiểm tra sự tồn tại của nó thì cũng thực hiện như trên và thay đường dẫn tới folder.

Tạo thư mục trong java

File class đại diện cho cả File và Folder trong java. Thế nhưng để khởi tạo folder chúng ta có hai method mkdir()mkdirs() với các mục đích khác nhau.

mkdir() khởi tạo thư mục năm ở cuối đường dẫn, nếu các folder đi trước không tồn tại mkdir() sẽ trả về false.

Giả sử trong thư mục Desktop tại đường dẫn (/Users/nguyenthanhhai/Desktop/) đã có sẵn folder data và không có sẵn folder empty.

Trái ngược với mkdir() mkdirs() sẽ tạo tất cả các thư mục trước đó nếu nó chưa tồn tại

Lấy kích thước file trong java

File class cho phép bạn lấy kích thước của file theo đơn vị byte bằng cách gọi method length().

Đổi tên hoặc di chuyển file, folder trong java

Để đổi tên file hoặc folder trong java, chúng ta có thể sử dụng method renameTo() của File class.

Đổi tên file, folder

Di chuyển file, folder

Chúng ta cũng dùng renameTo() để di chuyển file bằng cách thay đường dẫn trong tham số truyền vào. 

Giả sử có sẵn folder empty trong ổ đĩa D.

Di chuyển và đổi tên file, folder

Để di chuyển và đổi tên file, folder thì chúng ta chỉ việc sửa lại tên của file, folder tên ứng trên đường dẫn.

Note: method renameTo() trả về true để cho biết rằng quá trình đổi tên file đã thành công. Quá trình đổi tên hoặc di chuyển file, folder có nhiều lý do không thành công như là đang được mở, không có quyền truy cập etc trả về false.

Xóa file và folder trong java

Để xóa file và folder trong File class sử dụng delete(). delete() trả về true để thông báo xóa file, folder thành công. Qúa trình xóa file, folder có nhiều lý do không thành công như là file, folder không tồn tại, đang được mở, không có quyền xóa etc trả về false.

Note: Đối với folder chúng ta chỉ sử dụng delete() khi folder đó rỗng, nếu bên trong có chứa các file và subFolder thì delete() sẽ không thành công.

Xóa folder và tất cả các file, folder con

Một điểm hạn chế khi bạn sử dụng delete() method để xóa folder thì chỉ xóa được folder rỗng hành động này gần như vô nghĩa mà trong thực tế không ai làm như vậy. Để xóa folder đầu tiên chúng ta cần xóa các file và subFolder bên trong nó, với mỗi subFolder bên trong nó chúng ta cũng xóa xóa tất cả các file và subFolder cứ như vậy cho đến khi folder ban đầu rỗng, cuối cùng chúng ta mới có thể xóa folder cần xóa.

Để giải quyết bài toán này chúng ta có method sử dụng đệ quy như sau:

Kiểm tra đường dẫn là file hay folder

File object đại diện cho cả file và folder trong java, chúng ta chỉ cần gọi method isFile() hoặc isDirectory() để kiểm tra là file hoặc folder.

Kiểm tra file bị ẩn trong java

Sử dụng method isHiden() để kiểm tra file hoặc folder có đang bị ẩn hay không

Lấy danh sách File và folder trong folder cha

Để lấy danh sách các file, folder trong folder cha chúng ta gọi method list() hoặc listFiles()

list() trả về mảng String chứa tên các file và folder trong folder cha.

listFiles() trả về các instance của folder chứa trong folder cha.

Mark readonly file, folder

Để đánh dấu file, folder chỉ được đọc sử dụng method setReadonly(). Trả về true để thông báo thành công, trường hợp false nếu không thành công có nhiều trường hợp như file đang được mở, file không tồn tại etc.

Kiểm tra ứng dụng có thể đọc hoặc ghi vào file

Để kiểm tra chương trình chúng ta có thể đọc hoặc ghi vào một file được chỉ định tại đường dẫn cụ thể chúng ta có thể sử dụng method canRead() và canWrite() để kiểm tra. canRead(), canWrite() trả về true để thông báo rằng chúng ta có thể đọc hoặc ghi tương ứng.

Nguồn tham khảo:

http://tutorials.jenkov.com/java-io/file.html

https://www.geeksforgeeks.org/file-class-in-java/

Leave a Reply

Your email address will not be published. Required fields are marked *