Zum Beispiel in C Ich habe Struktur:C-Struktur in der Datei geschrieben, offen mit Java
typedef struct {
int number;
double x1;
double y1;
double x2;
double y2;
double x3;
double y3;
} CTRstruct;`
Dann schreibe ich es fwrite(&tr, 1, sizeof(tr), fp);
(tr - sein CTRstruct var, fp - Dateizeiger) einzureichen;
Dann muss ich es mit Java lesen! Ich weiß wirklich nicht, wie man struct von der Datei liest ... Ich habe versucht, es mit ObjectInputStream()
zu lesen, letzte Idee ist, mit RandomAccessFile()
zu lesen, aber ich weiß auch nicht, wie man ... (readLong(), readDouble()
auch nicht funktioniert, Es funktioniert zwar, liest aber keine korrekten Daten. Also, irgendeine Idee, wie man C struct aus einer Binärdatei mit Java liest?
Wenn es interessant ist, meine Version integer zu lesen (aber es ist hässlich, & ich weiß nicht, was mit double
zu tun):
public class MyDataInputStream erweitert Datainputstream {
public MyDataInputStream(InputStream AIs) {
super(AIs);
}
public int readInt1() throws IOException{
int ch1 = in.read();
int ch2 = in.read();
int ch3 = in.read();
int ch4 = in.read();
if ((ch1 | ch2 | ch3 | ch4) < 0)
throw new EOFException();
return ((ch4 << 24) + (ch3 << 16) + (ch2 << 8) + (ch1 << 0));
}
mit Doppel können wir den gleichen Weg (wie mit Int oder mit langen (8bytes) & dann konvertieren, um mit nativen Spaß zu verdoppeln c).
Die Art, wie Sie die Struktur in Datei schreiben, ist falsch, sehen Sie sich das an: http://StackOverflow.com/Questions/10153155/write-raw-struct-Contents-Bytes-To-Afile-in-In- c-confused-about-actual-size-wri –
Die eigentlich richtige Antwort wäre, die Speicherrepräsentation der Struktur nicht in eine Datei wie diese zu schreiben. – celtschk
ja, mb, es ist albern, so zu tun, aber ich muss es tun ..(Ich meine, in die Datei die Lochstruktur schreiben) – DaunnC