Rumah  >  Soal Jawab  >  teks badan

utf-8 - Java menggunakan FileWriter untuk menulis data jenis int ke fail, data fail salah?

(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_u1582phpcn_u15822713 hari yang lalu563

membalas semua(1)saya akan balas

  • 仅有的幸福

    仅有的幸福2017-05-17 10:00:09

    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)));
    

    balas
    0
  • Batalbalas