Frage

hat J2ME etwas ähnliches müssen RandomAccessFile Klasse, oder ist es eine Möglichkeit, diese besondere (Random Access) Funktionalität zu emulieren?

Das Problem ist folgende: Ich habe eine ziemlich große binäre Datendatei (~ 600 KB) und möchte eine mobile Anwendung erstellen für diese Daten verwenden. Format dieser Daten ist hausgemacht und enthält viele Indexblöcke und Datenblöcke. Das Lesen der Daten auf anderen Plattformen (wie PHP oder C) geht in der Regel wie folgt aus:

  1. Read 2 Bytes für die Indexschlüssel (K), eine weitere 2 für Indexwert (V) für den Datentyp erforderlich
  2. Skip V vom Anfang der Datei-Bytes in eine Datei Position dort die Daten für Indexschlüssel K startet
  3. suchen
  4. Lesen Sie die Daten
  5. Profit:)

Dies geschieht viele Male während des Programmablaufs.

Um, und ich untersuchen Möglichkeit auf J2ME das gleiche zu tun, und während ich gebe zu, ich bin ganz neu in der ganzen Java Sache, kann ich nicht in der Lage sein scheinen etwas über InputStream ( DataInputStream ) Klassen, die Byte nicht den grundlegenden seeking haben / Überspringen / rückkehrenden Position Funktionen I Notwendigkeit.

Also, was sind meine Chancen?

War es hilfreich?

Lösung

Sie sollten etwas davon haben

try {
    DataInputStream di = new DataInputStream(is);
    di.marke(9999);
    short key = di.readShort();
    short val = di.readShort();
    di.reset();
    di.skip(val);
    byte[] b= new byte[255];
    di.read(b);
}catch(Exception ex ) {
    ex.printStackTrace();
}

ziehe ich es nicht, die Marke / Reset-Methoden verwenden, ich denke, dass es besser ist, den Offset vom val Standort nicht vom Anfang der Datei zu speichern, damit Sie diese Methoden überspringen. Ich denke, sie haben som Probleme auf einigen Geräten.

Noch eine Anmerkung, ich empfehle nicht, eine 600 KB-Datei zu öffnen, wird die Anwendung auf vielen Low-End-Geräte zum Absturz bringen, sollten Sie diese Datei in mehrere Dateien aufgeteilt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top