Announcement

Collapse
No announcement yet.

Delphi - Java FILE io

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Delphi - Java FILE io

    Hallo,

    ich möchte in einem Delphi-Programm Integer UND Double Werte in EINE Datei ausgeben und diese Datei dann in einem Java-Programmm mit RandomAccessFile wieder einlesen.

    Zur Ausgabe verwende ich eine file of byte und BlockWrite. Für den Integer i sieht das dann also so aus:

    BlockWrite(f,i,SizeOf(i));

    Beim Einlesen im Java-Programm

    int i = f.readInt();

    So!! Leider funktioniert das nicht. Der Wert ist ein ganz anderer. Auch mit Reals/Doubles klappt es nicht. Nur mit Bytes gelingt es.

    Ist die Integer/Double Repräsentation von Delphi und Java unterschiedlich??

    Wie kann ich das Problem beseitigen?

    Vielen Dank schonmal!!
    Und angenehmes Wochenende!

    Manuel

  • #2
    Hallo Manuel,

    Das hat mit der byte order zu tun. Java speichert plattformunabhängig immer big endian, also das höchstwertige Byte zuerst. Delphi speichert plattformabhängig, unter Intel also little endian, d.h. das niederwertigste Byte zuerst. Speicher doch mal den Integer-Wert "0x11223344" mit Java und mit Delphi und lies das ganze Byte-weise ein (oder schau es im Hex-Editor an). Unter Java lauten die Bytes (der Reihenfolge nach) 0x11, 0x22, 0x33, 0x44, in Delphi 0x44, 0x33, 0x22, 0x11.

    Gruß,

    Alwi

    Comment

    Working...
    X