แผ่นไฟล์และป้าย UTF-8 บนโต๊ะมิ้นต์ข้างปากกา

Java Files.readString: อ่านทั้งไฟล์เป็น String พร้อม Charset ชัด ๆ

น้องกายEngineering

ไฟล์คอนฟิกสั้น ๆ — Files.readString(path, charset) อ่านทั้งก้อนเป็น String ได้ในบรรทัดเดียว (Java 11+)

import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;

public class Main {
    public static void main(String[] args) throws Exception {
        Path p = Files.createTempFile("showkhun-", ".txt");
        Files.writeString(p, "สวัสดี", StandardCharsets.UTF_8);
        String s = Files.readString(p, StandardCharsets.UTF_8);
        assert s.equals("สวัสดี") : s;
        Files.deleteIfExists(p);
        System.out.println("files readString tests passed");
    }
}

อย่าใช้กับไฟล์กิกะไบต์ — โหลดทั้งก้อนเข้าฮีป ถ้าใหญ่ให้สตรีมทีละบรรทัด

Recap

  • ส่ง StandardCharsets.UTF_8 เสมอ อย่าพึ่ง default charset ของ OS
  • คู่กับ writeString ตอนเทสต์
  • อ่าน Files API