utf-8 – Java verwendet FileWriter, um Daten vom Typ int in eine Datei zu schreiben. Sind die Dateidaten falsch?
phpcn_u1582
phpcn_u1582 2017-05-17 09:58:09
0
1
624

(Ich weiß, mein Titel ist sehr vage, weil ich wirklich nicht weiß, wie ich ihn beschreiben soll)

Der Grund dafür ist, dass eine Android-App in Java entwickelt wurde. Eine der Funktionen besteht darin, FileWriter zum Schreiben von int-Daten in eine Datendatei zu verwenden. Diese Datendatei wird mit der Methode createNewFile(String filename) von File erstellt, und die in die Datei geschriebenen Daten sind alle vom Typ int. (FileWriters write(int)-Methode)

Zur Vereinfachung der späteren Verarbeitung wird jedes Datensegment in der Datendatei durch 4 (int)-1 geteilt (vor jedem Datensegment geschrieben). Logischerweise sollten die ersten 16 Bytes dieser Datei ff sein. Aber die eigentliche Datendatei sieht so aus:

Ich sehe bekannte Probleme, wie UTF8-Codierungsfehler, aber ich verstehe nicht ganz, warum es Codierungsfehler gibt, wenn int mit write geschrieben wird und kein String in die Datei geschrieben wird.

Also möchte ich alle fragen: Was soll ich in dieser Situation tun (reine Int-Datendatei)? Gibt es eine andere Möglichkeit, die Daten auszulesen?

Vielen Dank im Voraus!

phpcn_u1582
phpcn_u1582

Antworte allen(1)
仅有的幸福

FileWrite的Write(int)方法 无法写入纯int文件的 因为这里的int实际上是char字符,当你的int数据在unicode码表里找不到对应的char值时就会出现乱码的。你可以提供一个toString方法转成字符串
想写入真正的int数据

       

     File file = new  File("b.txt");
FileWriter fw = new FileWriter(file);
fw.write((Integer.toString(87)));
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage