Trong bài này, chúng ta sẽ tìm hiểu về thuộc tính hệ thống java.io.tmpdir. Thuộc tính hệ thống java.io.tmpdir chỉ ra thư mục tạm thời được sử dụng bởi Máy ảo Java (JVM) để tạo và lưu trữ các tập tin tạm thời.
Giá trị mặc định thường là “/tmp“, hoặc “/var/tmp” trên các nền tảng Linux. Trên các hệ thống Microsoft Windows, thuộc tính java.io.tmpdir thường là “C:\Users\gpcoder\AppData\Local\Temp\“.
Trong quá trình thực hiện ứng dụng của bạn, bạn có lấy giá trị của thuộc tính hệ thống java.io.tmpdir:
System.out.println(System.getProperty("java.io.tmpdir"));
Thay đổi giá trị mặc định của thuộc tính java.io.tmpdir
Trong trường hợp bạn muốn thay đổi thuộc tính hệ thống java.io.tmpdir, bạn có thể sử dụng tham số -Djava.io.tmpdir và chỉ định thư mục tạm của chính bạn.
Ví dụ:
java -Djava.io.tmpdir=/home/user/Temp
Bằng cách này, bạn thay đổi giá trị của thuộc tính hệ thống java.io.tmpdir, trong quá trình khởi tạo Máy ảo Java (JVM). Nếu không, bạn có thể sử dụng đoạn code dưới đây để thay đổi giá trị của thuộc tính hệ thống java.io.tmpdir:
System.setProperty ("java.io.tmpdir", "/home/user/Temp");
Tạo file tạm
Java cung cấp hai phương thức static để tạo file tạm thời qua lớp File:
public static File createTempFile(String prefix, String suffix, File directory); public static File createTempFile(String prefix, String suffix);
Trong đó:
- prefix: prefix của tên file tạm
- suffix: phần mở rộng của file
- directory: thư mục chứa file tạm. Nếu không xác định thì JVM sẽ lấy giá trị thư mục tạm mặc định của hệ thống.
Ví dụ sử dụng java.io.tmpdir
package com.javaio.simple.tmp; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; public class TmpDirExample { public static void main(String[] args) throws IOException { // Lấy thư mục tạm của hệ thống String tmpdir = System.getProperty("java.io.tmpdir"); System.out.println("Thư mục tạm: " + tmpdir); // Thông tin file tạm String prefix = "gpcoder_tmp_"; String suffix = ".txt"; File directory = new File("C:/usr"); // Tạo các file tạm File tempFile = File.createTempFile(prefix, suffix); File tempFile2 = File.createTempFile(prefix, null); File tempFile3 = File.createTempFile(prefix, suffix, directory); // Lưu nội dung file tạm BufferedWriter bw = new BufferedWriter(new FileWriter(tempFile)); bw.write("Welcome to gpcoder.com"); bw.close(); // Đọc nội dung file tạm System.out.println("---"); BufferedReader br = new BufferedReader(new FileReader(tempFile)); StringBuilder sb = new StringBuilder(); String line; while ((line = br.readLine()) != null) { sb.append(line); } br.close(); System.out.println("Nội dung file tạm: " + sb.toString()); // Hiển thị thông tin file System.out.println("---"); System.out.println("File " + tempFile.getName() + " được tạo ở thư mục: " + tmpdir); System.out.println("File " + tempFile2.getName() + " được tạo ở thư mục: " + tmpdir); System.out.println("File " + tempFile3.getName() + " được tạo ở thư mục: " + tmpdir); // Hiển thị thư mục cha System.out.println("---"); System.out.println("Thư mục cha của " + tempFile.getName() + " là " + tempFile.getParent()); System.out.println("Thư mục cha của " + tempFile2.getName() + " là " + tempFile2.getParent()); System.out.println("Thư mục cha của " + tempFile3.getName() + " là " + tempFile3.getParent()); // Xóa các file tạm System.out.println("---"); System.out.println("Xóa file: " + tempFile.getName() + " -> " + tempFile.delete()); System.out.println("Xóa file: " + tempFile2.getName() + " -> " + tempFile2.delete()); System.out.println("Xóa file: " + tempFile3.getName() + " -> " + tempFile3.delete()); } }
Kết quả thực thi chương trình trên:
Thư mục tạm: C:\Users\gpcoder\AppData\Local\Temp\ --- Nội dung file tạm: Welcome to gpcoder.com --- File gpcoder_tmp_7234532703604598775.txt được tạo ở thư mục: C:\Users\gpcoder\AppData\Local\Temp\ File gpcoder_tmp_8116987631049481862.tmp được tạo ở thư mục: C:\Users\gpcoder\AppData\Local\Temp\ File gpcoder_tmp_2776246472534424156.txt được tạo ở thư mục: C:\Users\gpcoder\AppData\Local\Temp\ --- Thư mục cha của gpcoder_tmp_7234532703604598775.txt là C:\Users\gpcoder\AppData\Local\Temp Thư mục cha của gpcoder_tmp_8116987631049481862.tmp là C:\Users\gpcoder\AppData\Local\Temp Thư mục cha của gpcoder_tmp_2776246472534424156.txt là C:\usr --- Xóa file: gpcoder_tmp_7234532703604598775.txt -> true Xóa file: gpcoder_tmp_8116987631049481862.tmp -> true Xóa file: gpcoder_tmp_2776246472534424156.txt -> true