Java Read & Write File with Encoding
Stajdayken zamanımı alan bir konuyu sizinle paylaşmak istedim. Her bir dilin rcc dosyasını alıp, birleştirip est’ye çeviren bir program vardı. Ancak dönüştürme UTF-8 formatındaydı. Rusça, Bulgarca gibi dillerde, Kiril Alfabesindeki harflerde sorun çıkıyordu. Çünkü bu harfler 8 bit’e sığmayan harfler. Ancak 16 bitle yani 2 byte’la ifade edilebiliyorlar. Arama yaptığım zaman, bu dönüştürme için bir sürü sonuç çıkıyor, ama çoğu olmuyordu. Ancak sonunda bulduğum ve çalışan java kodları şu şekilde:
Encoding’le file okuma:
FileInputStream fstream = new FileInputStream(filename);
DataInputStream in = new DataInputStream(fstream);
BufferedReader br = new BufferedReader (new InputStreamReader(in));
Bir de Scanner kullanarak da encoding yapıldığı örnekler var ki, ben uğraşmama rağmen kendi projemde bir türlü yapamadım. Ayrıca;
InputStreamReader in = new InputStreamReader(fstream, Encode);
şeklinde bir çeşit daha var, ancak ilk yazdığım şekilde yazınca, karakterleri olduğu gibi aldı, sorun çıkmadı bende. 2 byte formatında almak için Encode’a “UTF-16” yazarsanız da oluyor.
Encoding’le file yazma:
Yazma kısmı hiç sorunsuz. Bu şekilde her zaman çalışıyor:
Writer out = new OutputStreamWriter(new FileOutputStream(FileName, boolean Append), Encode);
out.write(string);
out.close();
İşte böyle!
Ziynet Nesibe
Yoruma Açığız! :)