มีคราวที่เราต้องสร้างไฟล์ชั่วคราว (temporary files) ทางการบิน เพื่อเก็บข้อมูลบางอย่างและลบทิ้งหลังใช้งาน
ใน Java เราสามารถใช้เมธอด Files.createTempFile() เพื่อสร้างไฟล์ชั่วคราวได้
การสร้างไฟล์ชั่วคราว
ตัวอย่างต่อไปนี้ใช้ Files.createTempFile(prefix, suffix) เพื่อสร้างไฟล์ชั่วคราว:
import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; public class CreateTempFile { public static void main(String[] args) { try { // สร้างไฟล์ชั่วคราว Path tempFile = Files.createTempFile("temp-", ".txt"); System.out.println("Temp file : " + tempFile); } catch (IOException e) { e.printStackTrace(); } } }
Output:
Temp file : /var/folders/nyckvw0000gr/T/temp-2129139085984899264.txt
ที่นี่ "temp-" คือ prefix และ ".txt" คือ suffix
หมายเหตุ: โดยค่าเริ่มต้น Java สร้างไฟล์ชั่วคราวใน temporary directory เราสามารถได้ temporary directory โดยทำ System.getProperty("java.io.tmpdir")
หาก suffix เป็น null ไฟล์ชั่วคราวจะสร้างด้วยนามสกุล .tmp
ตัวอย่าง:
Path tempFile = Files.createTempFile("prefix-", null); System.out.println("Temp file : " + tempFile); // Temp file : /var/folders/nyckvw0000gr/T/prefix-17184288103181464441.tmp
และหากไม่ระบุ suffix จะสร้าง temp file ไม่มีนามสกุล:
Path tempFile = Files.createTempFile(null, ""); System.out.println("Temp file : " + tempFile); // Temp file : /var/folders/nyckvw0000gr/T/1874152090427250275
สร้าง Temp File ใน Directory ที่ระบุ
แทนที่จะปล่อยให้ Java เลือก directory เราสามารถบอกได้ว่าจะสร้างไฟล์ชั่วคราวที่ไหน
ตัวอย่าง:
import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; public class CreateTempFile { public static void main(String[] args) { try { Path path = Paths.get("target/tmp/"); // สร้างไฟล์ชั่วคราวใน directory ที่ระบุ Path tempFile = Files.createTempFile(path, null, ".log"); System.out.println("Temp file : " + tempFile); } catch (IOException e) { e.printStackTrace(); } } }
หมายเหตุ: Directory ที่ระบุต้องมีอยู่จริง เพื่อให้เขียนไฟล์ชั่วคราวได้
สร้าง Temp File และเขียนข้อมูลลงไป
โค้ดตัวอย่างต่อไปนี้สร้างไฟล์ชั่วคราวแล้วเขียนข้อความลงไป:
import java.io.IOException; import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; public class CreateTempFile { public static void main(String[] args) { try { Path path = Paths.get("target/tmp/"); // สร้างไฟล์ชั่วคราวใน directory ที่ระบุ Path tempFile = Files.createTempFile(path, null, ".log"); System.out.println("Temp file : " + tempFile); // เขียนบรรทัดเดียว Files.write(tempFile, "Hello From Temp File\n".getBytes(StandardCharsets.UTF_8)); } catch (IOException e) { e.printStackTrace(); } } }
- Java write to files
- Java create file
- Java read files