Menulis Fail UTF-8 dalam Java
Di Java, pengekodan output lalai untuk menulis fail teks mungkin tidak selalunya UTF-8. Ini boleh membawa kepada isu keserasian semasa membaca atau memproses fail. Jika anda secara eksplisit perlu mencipta fail UTF-8, anda boleh menggunakan pendekatan berikut:
Penyelesaian
Daripada menggunakan kelas FileWriter untuk menulis, gunakan FileOutputStream bersama dengan OutputStreamWriter. Ini membolehkan anda menentukan pengekodan aksara yang dikehendaki semasa pembinaan. Gunakan pernyataan cuba-dengan-sumber untuk memastikan pengendalian sumber yang betul:
try (OutputStreamWriter writer = new OutputStreamWriter(new FileOutputStream(PROPERTIES_FILE), StandardCharsets.UTF_8)) // do stuff }
Penjelasan
FileOutputStream ialah strim peringkat rendah yang mengendalikan penulisan fail sebenar. Membungkusnya dengan OutputStreamWriter membolehkan penukaran pengekodan aksara. Dengan menghantar StandardCharsets.UTF_8 kepada pembina, anda menyatakan bahawa output harus dikodkan menggunakan UTF-8.
Dalam pernyataan cuba-dengan-sumber, anda boleh melaksanakan operasi penulisan fail anda. Blok cuba menjamin bahawa sumber (strim fail) akan ditutup secara automatik selepas selesai atau sekiranya berlaku pengecualian.
Dengan menggunakan pendekatan ini, anda boleh memaksa penciptaan fail berkod UTF-8 dengan berkesan, tanpa mengira daripada tetapan lalai sistem.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memastikan Program Java Saya Menulis Fail dalam Pengekodan UTF-8?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!