Thuta Learning
Java
AdvancedProgrammingbeginner

File I/O with Path & Files

ဒီခန်းပြီးရင် ဘာတတ်သွားမလဲ

  • File I/O with Path & Files ရဲ့language နဲ့JVM behavior ကိုရှင်းပြနိုင်ရန်
  • Normal, boundary, invalid နဲ့failure cases စမ်းနိုင်ရန်
  • Maintainable, testable Java code ရေးနိုင်ရန်

Path ကlocation ကိုဖော်ပြပြီးFiles operations တွေfail နိုင်သဖြင့်explicit handle လုပ်ရပါတယ်။

ပိုပြီးနားလည်ထားရမယ့် အချက်

Modern Java file I/O ကို`Path` နဲ့`Files` APIs ဖြင့်လုပ်ပြီးcharset, overwrite/append policy, missing files, permissions နဲ့partial failure ကိုexplicit ကိုင်တွယ်ပါ။ Untrusted path input အတွက်allowed root boundary ကိုvalidate လုပ်ပါ။

လက်တွေ့မှာ ဘယ်လိုအသုံးချမလဲ

UTF-8 text ကိုtemporary file သို့write/read လုပ်ပြီးmissing parent, permission/error နဲ့safe replacement behavior ကိုစမ်းပါ။

ဒီသင်ခန်းစာပြီးရင်

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

class Main {
    public static void main(String[] args) throws Exception {
        Path file = Files.createTempFile("java-notes-", ".txt");
        try {
            Files.writeString(file, "Safe Java I/O", StandardCharsets.UTF_8);
            System.out.println(Files.readString(file, StandardCharsets.UTF_8));
        } finally {
            Files.deleteIfExists(file);
        }
    }
}
You should see
Safe Java I/O

ကိုယ်တိုင်စမ်းကြည့်ရန်

UTF-8 text ကိုtemporary file သို့write/read လုပ်ပြီးmissing parent, permission/error နဲ့safe replacement behavior ကိုစမ်းပါ။

Common Mistake သတိပေးချက်

Platform default charset ကိုအလွယ်ယုံခြင်း သို့မဟုတ်user path ကိုvalidate မလုပ်ဘဲserver filesystem နဲ့join လုပ်ခြင်း။

java.nio.file APIOracle

ဒီနေရာမှာ လူအများမှားတတ်တယ်

  • Platform default charset ကိုအလွယ်ယုံခြင်း သို့မဟုတ်user path ကိုvalidate မလုပ်ဘဲserver filesystem နဲ့join လုပ်ခြင်း။
  • Sample output တစ်ခုမှန်ရုံဖြင့် null, boundary, resource နဲ့concurrency behavior အားလုံးမှန်ပြီဟုယူဆခြင်း။

လက်တွေ့လေ့ကျင့်ခန်း

UTF-8 text ကိုtemporary file သို့write/read လုပ်ပြီးmissing parent, permission/error နဲ့safe replacement behavior ကိုစမ်းပါ။

You'll know it worked when: Safe Java I/O

File I/O with Path & Files | Thuta Learning