CodeGym /Blog Java /Ngẫu nhiên /Lớp Java.io.File

Lớp Java.io.File

Xuất bản trong nhóm
Trong nhiều trường hợp, chương trình cần truy cập vào một số tệp nhất định trong công việc của nó. Ví dụ: dữ liệu người dùng có thể được ghi vào một số tệp bên ngoài và để đọc nó, chương trình cần có khả năng làm việc với nó - mở, đọc dữ liệu, có thể chỉnh sửa và đóng. Vì những mục đích này, ngôn ngữ lập trình Java có Lớp Java.io.File . Trong bài viết này, chúng ta sẽ xem xét nó là loại lớp nào và đưa ra một ví dụ về cách làm việc với nó.

Lớp tệp Java là gì

Lớp Tệp được định nghĩa trong gói java.io và nó không hoạt động trực tiếp với các luồng. Lớp Java File dùng để quản lý thông tin về tập tin và thư mục. Như bạn đã biết, ở cấp độ hệ điều hành, các tập tin và thư mục là những đối tượng khác nhau. Tuy nhiên trong Java, cả hai đều được mô tả bởi cùng một lớp File . Bạn có thể thắc mắc tại sao không chỉ sử dụng chuỗi để tham chiếu đến tệp? Trước hết, vì quyền truy cập tệp ở các hệ điều hành khác nhau là khác nhau.

Trình tạo lớp tệp

Tùy thuộc vào việc đối tượng Lớp Java.io.File nên đại diện cho một tệp hay một thư mục, chúng ta có thể sử dụng một trong các hàm tạo để tạo đối tượng: File(String pathname) trong trường hợp này, hàm tạo tạo một cá thể Tệp mới bằng cách chuyển đổi tên đường dẫn đã cho chuỗi thành một tên đường dẫn trừu tượng. File(String myPath, String myString) hàm tạo này tạo một phiên bản Tệp mới từ chuỗi tên đường dẫn myPath và chuỗi tên đường dẫn myString. File(File parent, String name) tạo một phiên bản Tệp mới từ tên đường dẫn trừu tượng của tệp và chuỗi tên đường dẫn tên. File(URI uri) trong trường hợp này, hàm tạo tạo một phiên bản Tệp mới bằng cách chuyển đổi tệp đã cho: URI thành tên đường dẫn trừu tượng. URI là một lớp Java đại diện cho tham chiếu Mã định danh tài nguyên thống nhất (URI). Dưới đây là một ví dụ về các hàm tạo Lớp Java.io.File khác nhau :
import java.io.File;
import java.net.URI;
import java.net.URISyntaxException;

public class FileTest {
   public static void main(String[] args) throws URISyntaxException {
       File myFile1 = new File("d:\\MyCat");
       File myFile2 = new File ("d:\\MyCat", "cat.txt");
       File myFile3 = new File(myFile1, "cat.txt");
       URI uri = new URI ("https://docs.oracle.com/javase/7/docs/api/java/net/URI.html");
       File myFile4 = new File(uri);
   }
}

Các phương thức của lớp tệp

Lớp Tệp Java có một số phương thức cho phép bạn thao tác với các tệp và thư mục. Hãy xem xét một số trong số họ:
  • boolean createNewFile() tạo một tệp mới tại đường dẫn được truyền tới hàm tạo. Trả về true nếu thành công, ngược lại trả về false

  • boolean delete() xóa một thư mục hoặc tệp trong đường dẫn được truyền tới hàm tạo. Trả về true khi xóa thành công

  • boolean tồn tại() kiểm tra xem tệp hoặc thư mục có tồn tại ở đường dẫn được chỉ định trong hàm tạo hay không. Nếu tệp hoặc thư mục tồn tại, trả về true, ngược lại trả về false

  • Chuỗi getAbsolutePath() trả về đường dẫn tuyệt đối cho đường dẫn được truyền tới hàm tạo của đối tượng

  • Chuỗi getName() trả về tên viết tắt của tệp hoặc thư mục

  • Chuỗi getParent() trả về tên của thư mục mẹ

  • boolean isDirectory() trả về true nếu đường dẫn đã cho chứa thư mục

  • boolean isFile() trả về true nếu có tệp tại đường dẫn đã cho

  • boolean isHidden() trả về true nếu thư mục hoặc tệp bị ẩn

  • long length() trả về kích thước của tệp theo byte

  • long LastModified() trả về thời điểm tệp hoặc thư mục được sửa đổi lần cuối. Giá trị biểu thị số mili giây đã trôi qua kể từ kỷ nguyên Unix

  • String[] list() trả về một mảng các tệp và thư mục con nằm trong một thư mục cụ thể

  • File[] listFiles() trả về một mảng các tệp và thư mục con nằm trong một thư mục cụ thể

  • boolean mkdir() tạo một thư mục mới và trả về true nếu thành công

  • booleannameTo(File Dest) đổi tên một tập tin hoặc thư mục

Một số tính năng của lớp File Java

  • Đường dẫn, trừu tượng hoặc chuỗi, có thể là tuyệt đối hoặc tương đối. Cha của một đường dẫn trừu tượng có thể được truy xuất bằng cách gọi phương thức getParent() của lớp đó.

  • Đầu tiên chúng ta nên tạo một đối tượng của lớp File , truyền cho nó tên của một tập tin hoặc thư mục. Hệ thống tệp có thể áp đặt các hạn chế đối với một số hoạt động nhất định trên đối tượng hệ thống tệp thực tế, chẳng hạn như đọc, ghi và thực thi. Những hạn chế này được gọi là quyền truy cập.

  • Các thể hiện của lớp File là bất biến. Điều đó có nghĩa là khi bạn tạo một tệp, đường dẫn trừu tượng được biểu thị bởi đối tượng Tệp sẽ không bao giờ thay đổi.

Ví dụ về mã lớp tệp

Hãy tạo một chương trình làm việc với các thư mục. Trước hết, nó phải tạo một thư mục tại đường dẫn đã cho, sau đó tạo một tệp mới và kiểm tra xem tệp và thư mục đó có tồn tại không.
import java.io.File;
import java.io.IOException;

public class FileTest2 {
   public static void main(String[] args) throws IOException {

       //create a directory using mkdir() File class method
       File dir = new File("d:\\MyDir");
       boolean created = dir.mkdir();
       if(created)
           System.out.println("Folder has been created...");
       else
           System.out.println("Folder hasn't been created...");
       File myFile = new File("d:\\MyDir\\cat.txt");
       myFile.createNewFile();
       System.out.println("File name: " + myFile.getName());
       System.out.println("Parent folder: " + myFile.getParent());
       if(myFile.exists())
           System.out.println("File exists");
       else
           System.out.println("File not found");
      }
}
Đây là đầu ra:
Thư mục đã được tạo... Tên tệp: cat.txt Thư mục gốc: d:\MyDir Tệp tồn tại
Nhân tiện, nếu bạn làm đúng mọi thứ, bạn có thể tìm thấy một thư mục và tệp mới trên máy tính của mình. Bây giờ hãy viết một chương trình để chúng ta có thể làm việc với thư mục được tạo và tệp. Ở đây chúng tôi sử dụng một số phương pháp được mô tả ở trên.
import java.io.File;

public class FileTest3 {

   public static void main(String[] args) {

       File dir = new File("d:\\MyDir");
       File myFile = new File("d:\\MyDir\\cat.txt");
       System.out.println("File name: " + myFile.getName());
       System.out.println("Parent folder: " + myFile.getParent());
       if (myFile.exists())
           System.out.println("File exists");
       else
           System.out.println("File not found");

       System.out.println("Absolute path: " + myFile.getAbsolutePath());

       if (myFile.exists()) {
           System.out.println("Is writable: " + myFile.canWrite());
           System.out.println("Is readable: " + myFile.canRead());
           System.out.println("Is a directory: " + myFile.isDirectory());
           System.out.println("myFile Size in bytes = " + myFile.length());

       }
   }
}
Đầu ra của chương trình là:
Tên tập tin: cat.txt Thư mục mẹ: d:\MyDir File tồn tại Đường dẫn tuyệt đối: d:\MyDir\cat.txt Có thể ghi được: đúng Có thể đọc được: đúng Là một thư mục: sai Kích thước myFile tính bằng byte = 0
Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION