utf-8 - Java menggunakan FileWriter untuk menulis data jenis int ke fail, data fail salah?
phpcn_u1582
phpcn_u1582 2017-05-17 09:58:09
0
1
623

(Saya tahu tajuk saya sangat kabur kerana saya tidak tahu bagaimana untuk menerangkannya)

Punca perkara itu ialah APP Android dibangunkan di Java Salah satu fungsinya ialah menggunakan FileWriter untuk menulis data int ke fail data. Fail data ini dibuat menggunakan kaedah createNewFile(String filename) Fail dan data yang ditulis pada fail adalah semua jenis int. (Kaedah write(int) FileWriter)

Untuk kemudahan pemprosesan seterusnya, setiap segmen data dalam fail data dibahagikan dengan 4 (int)-1 (ditulis di hadapan setiap segmen data). Secara logiknya, 16 bait pertama fail ini hendaklah ff. Tetapi fail data sebenar adalah seperti ini:

Saya melihat masalah biasa, seperti ralat pengekodan UTF8, tetapi saya tidak begitu faham mengapa terdapat ralat pengekodan jika int ditulis menggunakan write, dan ia tidak menulis String pada fail.

Jadi saya ingin bertanya kepada semua, apakah yang perlu saya lakukan dalam situasi ini (fail data int tulen)? Adakah terdapat cara lain untuk membaca data?

Terima kasih terlebih dahulu!

phpcn_u1582
phpcn_u1582

membalas semua(1)
仅有的幸福

Kaedah Write(int) FileWrite tidak boleh menulis fail int tulen kerana int di sini sebenarnya ialah aksara char Apabila data int anda tidak dapat mencari nilai aksara yang sepadan dalam jadual kod unicode, aksara yang bercelaru akan muncul. Anda boleh menyediakan kaedah toString untuk menukarnya menjadi rentetan
Jika anda ingin menulis data int sebenar

       

     File file = new  File("b.txt");
FileWriter fw = new FileWriter(file);
fw.write((Integer.toString(87)));
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan