0
여러 번 물어 봤지만 모든 사람들이 제안한 코드를 시도해 보았고 시스템에서 작동하지 않게되었습니다.Java에서 DataOutputStream을 사용하여 정수를 쓸 수 없다
public class Heap implements Serializable {
public Attribute[] A; // Array of data, has elements name/String, p1/int, n1/int, ig/double
private int n = 0; // num elements
private int max = 0; // Max elements
...
}
public void serialize(Heap hp, String filename) throws IOException {
DataOutputStream dst = new DataOutputStream(new FileOutputStream(filename));
dst.writeInt(hp.heapMax());
dst.writeInt(hp.A.length);
System.out.println("Writing heap max " + hp.heapMax() + " and heap size " + hp.A.length);
for(int i = hp.A.length - 1; i > 0; i--) {
dst.writeInt(hp.A[i].n1);
dst.writeInt(hp.A[i].p1);
dst.writeDouble(hp.A[i].ig);
dst.writeUTF(hp.A[i].name);
}
dst.close();
}
이 힙 개체의 특성 배열에는 1000 개의 항목이 있습니다. 그러나 데이터를 쓸 때 vi에서 파일을 열 때 파일에있는 내용은 모두 ^@^@^Cè^@^@^Cé
입니다. 16 진수 편집기는 00 00 03 E8 00 00 03 E9
만 표시합니다. 그래서 내가 뭘 잘못하고 있니? java -version
의
출력 :
java version "1.7.0_25"
Java(TM) SE Runtime Environment (build 1.7.0_25-b15)
Java HotSpot(TM) 64-Bit Server VM (build 23.25-b01, mixed mode)
'writeInt' 메서드로 문제가 발생합니까? –