Heim > Fragen und Antworten > Hauptteil
(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!
仅有的幸福2017-05-17 10:00:09
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)));