2017-12-04 4 views
1

Ich habe zwei HashMapsLesen & Schreiben mehrere HashMaps

public static HashMap<String, Date> taskMap = new HashMap<String, Date>(); 
private HashMap<String,String> passMap = new HashMap<String, String>(); 

und ein Verfahren, das nur in der Lage ist, die erste Karte

private void readData() { 
    try { 
     FileInputStream fileIn = new FileInputStream("data/tasks.ser"); 
     ObjectInputStream ois = new ObjectInputStream(fileIn); 
     taskMap.putAll((HashMap)ois.readObject()); 
     ois.close(); 
    } 
    catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 

Ich frage mich, zu lesen, wenn es eine Möglichkeit, beide HashMaps zu schreiben in einer einzigen Datei und dann in der Lage sein, beide zu lesen, um es effizienter zu machen.

Antwort

0

Sie müssen nur definieren, wie Sie sie speichern möchten, Objektserialisierung serialisiert nur ein Objekt, ein Ansatz wäre, eine Wrapper-Klasse zu erstellen, die beide Karten enthält, eine andere Möglichkeit wäre, Ihren Serialisierungsmechanismus zu ändern.

+0

'Object Serialisierung serialisiert nur ein Objekt' ist Unsinn. Java-Objekt-Serialisierung serialisiert so viele Objekte, wie Sie möchten. – EJP

+0

Trotzdem würde der Ansatz funktionieren. Vor allem die Container-Klasse könnte nützlich sein, wenn Sie mehr als nur das gleichzeitig speichern möchten. – Zabuza

+0

@Zabuza Natürlich wird es funktionieren, und das an sich ist der Beweis, dass die Aussage, die ich zitiert habe, falsch ist. – EJP

1

Ja, schreiben Sie beide einfach in die ObjectOutputStream, und lesen Sie beide aus der ObjectInputStream, in der gleichen Reihenfolge.