Speichern HashMap Eigenschaften zu einer properties-Datei, und laden diese Eigenschaften zurück an die HashMap

So, ich starte in ein casting-problem mit speichern von HashMap Eigenschaften zu einem Properties - Datei, weil der Schlüssel des HashMap ist ein Objekt, das nicht umgewandelt werden java.lang.String da die Eigenschaften werden muss (String, String) und meine HashMap ist (Object, Long).

Ich will einfach nur speichern Sie die Inhalte der HashMap zu einer Datei, so kann ich die Last auf den Inhalt zurück in die HashMap das nächste mal, wenn das Programm lief.

Ich gegangen durch eine übermäßige Menge von wertlosen versuche, um zu versuchen zu füllen HashMaps mit Gegenständen, die Sie enthalten, bevor Sie gerettet wurden. Ich habe versucht zu denken, der eine einfache Möglichkeit, konvertieren Sie das Objekt in eine Zeichenfolge, die ich tun kann, aber da Properties und HashMaps sind nicht indiziert, ich kann es nicht ändern diese Zeichenfolgen zurück zu dem Objekt, das Sie brauchen werden. Wie dies zu erreichen?

Hier ist, was ich versuche zu tun:

    public File savedHashMaps = new File("SavedHashMaps.list");
//in my case, the object is 'Location' from an implemented API
public Map<Location, Long> map = new HashMap<Location, Long>();

public void saveMaps() {
    Properties prop = new Properties();
    try {
        if (!map.isEmpty()) {
            prop.load(new FileInputStream(savedHashMaps));
            prop.putAll(map);
            prop.store(new FileOutputStream(savedHashMaps), null);
        }
    } catch (IOException e) {
        e.printStackTrace();
    }
}

public void loadMaps() {
    Properties prop = new Properties();
    try {
        prop.load(new FileInputStream(savedHashMaps));
        if (!prop.isEmpty()) {
            map.putAll((Map)prop);
        }
    } catch (IOException e) {
        e.printStackTrace();
    }
}
Eigenschaften-Datei ist nicht die richtige Art und Weise zu speichern Sie Ihre Daten (Map<Location, Long>). Sie sollten kommen mit Ihren eigenen Daten-Datei-format, die zu Ihren Daten werden gespeichert/abgerufen werden.
Sie könnten besser mit der ObjectInputStream und ObjectOutputStream für diesen Zweck eher als die Eigenschaften format, es sei denn, Sie erwarten, dass ein anderes Programm zum Lesen/schreiben.

InformationsquelleAutor Jon McPherson | 2012-11-28

Schreibe einen Kommentar