Frage

Ich entwickle eine Art Austauschformat zwischen Instanzen einer Anwendung, so dass Benutzerinformationen sparen könnten, um es später Datei und wiederherstellen. Das gesamte ‚Austauschformat‘ ist eine einzige Klasse, die und auf der Platte geschrieben serialisiert wird.

Wie würden Sie vorschlagen, grafische / Tonin innerhalb dieser Klasse zu speichern? Ich möchte nur vermeiden, dass die Dateien in einem .jar setzen.

War es hilfreich?

Lösung

Sie können Ihre Ressourcen in der Klasse als byte [] Arrays gespeichert halten. Mit ByteArrayInputStream und ByteArrayOutputStream Sie sind in der Lage, die Arrays als Ströme zu wickeln und nutzen sie, Ressourcen zu speichern und abzurufen.

Andere Tipps

Der Datenspeicher genau sowieso Sie innerhalb der Klasse mögen, aber benutzerdefinierte Serialisierung für die Daten implementieren. Siehe Serializable .

** me **

Wie wäre es mehr Details zu Ihrem Fall? die „beste“ Methode hängt in der Regel von der jeweiligen Anwendung / Verwendung. wird das Bild / Ton von Dateien kommen? aus einem Strom? Wird jede Instanz der Klasse erwartet getrennte Bilder zu speichern? Oder kann ein Bild zwischen den verschiedenen Instanzen gemeinsam genutzt werden?

gsmd

  

Bilder kommen aus Dateien, Töne kommen   aus einem Strom; es gibt tatsächlich ein Set   von Gegenständen, von denen einige eine kann   Bild angehängt; ein Bild kann nicht sein,   geteilt


Welche Methoden haben Sie versucht? Ich denke, die Serializable-Schnittstelle ist der Weg zu gehen. Hier zwei Artikel zum Thema.

Grundsätzlich

  1. implementieren, um die Serializable Schnittstelle in der Klasse
  2. kennzeichnen Mitglieder, die nicht in der Datei als transient (Mitglieder, die Kontextdaten wie Datei-Handles enthalten, Socket-Verbindungen, usw.).
  3. gespeichert werden sollen
  4. müssen Sie anpassen, wie Ihr Bild und Ton Klassen Daten schreiben verwenden, aber die Umsetzung:

      

    private void write (Object out) throws IOException;

         

    private void readObject- (Object in) throws IOException, ClassNotFoundException;

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