Trong các ứng dụng, việc thao tác với tập tin và thư mục là một nhu cầu không thể thiếu. Trong Java, chúng ta có hai lớp quan trọng để hỗ trợ các thao tác này: java.io.File
và java.nio.file.Files
. Trên thực tế, lớp java.nio.file.Files
cung cấp các phương thức hiệu suất cao hơn và nên được sử dụng trong các ứng dụng Java. Tuy nhiên, trong bài viết này, tôi sẽ hướng dẫn các bạn sử dụng lớp java.io.File
để thao tác với tập tin và thư mục trong Java.
Đường dẫn (Path) là gì?
Một đường dẫn là một cách để xác định vị trí của tập tin hoặc thư mục trong hệ thống tập tin. Nó bắt đầu từ nút gốc và đi xuống dọc theo cấu trúc thư mục. Ví dụ, đường dẫn tới tập tin statusReport
có thể được biểu diễn như sau:
Trong Hệ điều hành Solaris: /home/user2/statusReport
Trong Microsoft Windows: C:homeuser2statusReport
Trong Java, chúng ta có thể sử dụng lớp java.io.File
để làm việc với đường dẫn. Lớp này cung cấp các phương thức để kiểm tra sự tồn tại, tạo thư mục, lấy thông tin về tên, đường dẫn tuyệt đối và nhiều hơn nữa.
Tạo thư mục
Để tạo một thư mục, chúng ta có thể sử dụng phương thức mkdir()
hoặc mkdirs()
của lớp java.io.File
. Phương thức mkdir()
tạo một thư mục mới chỉ khi thư mục cha đã tồn tại. Phương thức mkdirs()
tạo một thư mục mới và tạo ra cả các thư mục cha nếu chúng chưa tồn tại.
File dir = new File("D:/WorkSpace/gpcoder/data/created1/child1");
boolean created = dir.mkdir();
Đổi tên thư mục và tập tin
Để đổi tên của một thư mục hay tập tin, chúng ta có thể sử dụng phương thức renameTo()
của lớp java.io.File
. Việc này cho phép ta đổi tên một tập tin hoặc thư mục mà không thay đổi đường dẫn cha.
File srcFile = new File("D:/WorkSpace/gpcoder/data/gpcoder.txt");
File destFile = new File("D:/WorkSpace/gpcoder/data/gpcoder2.txt");
boolean renamed = srcFile.renameTo(destFile);
Xóa thư mục và tập tin
Để xóa một tập tin, chúng ta có thể sử dụng phương thức delete()
của lớp java.io.File
. Tuy nhiên, phương thức này chỉ cho phép xóa các thư mục rỗng.
File file = new File("D:/WorkSpace/gpcoder/data/test2.txt");
boolean deleted = file.delete();
Sao chép tập tin và thư mục
Để sao chép một thư mục và các tập tin trong nó, chúng ta có thể sử dụng phương thức copyDirectory()
kết hợp với các phương thức hỗ trợ như doCopyDirectoryImpl()
và doCopySingleFile()
. Ví dụ dưới đây minh họa cách sao chép một thư mục từ nguồn đến đích:
File sourceDir = new File("E:/TestCopy");
File destDir = new File("D:/Copy");
copyDirectory(sourceDir, destDir);
Thông qua các phương thức này, chúng ta có thể sao chép tất cả các tập tin và thư mục từ nguồn tới đích một cách dễ dàng.
Kết luận
Trong bài viết này, chúng ta đã tìm hiểu cách thao tác với tập tin và thư mục trong Java thông qua lớp java.io.File
. Từ việc tạo thư mục, đổi tên, xóa đến sao chép, chúng ta đã thấy cách sử dụng các phương thức của lớp này để thực hiện các thao tác cơ bản trong việc quản lý tập tin và thư mục.
Tài liệu tham khảo: https://docs.oracle.com/javase/tutorial/essential/io/index.html