ডিফল্ট চারসেট ফাইল I/O থেকে স্পষ্ট StandardCharsets এ
প্ল্যাটফর্মের ডিফল্ট চারসেট আচরণ এবং চারসেট-নাম লুকআপের পরিবর্তে StandardCharsets কনস্ট্যান্ট সহ Files রিডার এবং রাইটার ব্যবহার করুন।
কোড তুলনা
✕ Platform-default charset
try (Reader reader = new FileReader(path.toFile())) {
return readAll(reader);
}
✓ Explicit standard charset
try (BufferedReader reader = Files.newBufferedReader(
path, StandardCharsets.UTF_8)) {
return readAll(reader);
}
এই কোডে সমস্যা দেখছেন? আমাদের জানান।
কেন আধুনিক পদ্ধতি ভালো
পোর্টেবল ফলাফল
একই বাইট প্রতিটি মেশিনে একইভাবে ডিকোড হয়।
পূর্বনির্ধারিত কনস্ট্যান্ট
StandardCharsets.UTF_8 এ ভুল বানানযুক্ত চারসেট নাম থাকতে পারে না।
আধুনিক ফাইল API
Path, বাফারিং এবং এনকোডিং একটি অপারেশনে প্রকাশ করা হয়।
পুরনো পদ্ধতি
প্ল্যাটফর্ম ডিফল্ট চারসেট
আধুনিক পদ্ধতি
স্পষ্ট স্ট্যান্ডার্ড চারসেট
JDK থেকে
7
কঠিনতা
প্রাথমিক
JDK সমর্থন
ডিফল্ট চারসেট ফাইল I/O থেকে স্পষ্ট StandardCharsets এ
উপলব্ধ
JDK 7 (জুলাই 2011) থেকে ব্যাপকভাবে উপলব্ধ
কীভাবে কাজ করে
Reader এবং Writer কনস্ট্রাক্টর যা ডিফল্ট চারসেটের উপর নির্ভর করে তা ফাইলের আচরণকে রানটাইম এনভায়রনমেন্টের উপর নির্ভরশীল করে তোলে। Files.newBufferedReader() এবং newBufferedWriter() একটি স্পষ্ট Charset গ্রহণ করে, যেখানে StandardCharsets স্ট্রিং লুকআপ বা UnsupportedCharsetException ছাড়াই UTF_8 এর মতো নিশ্চিত কনস্ট্যান্ট প্রদান করে।
সম্পর্কিত ডকুমেন্টেশন
প্রমাণ