2016-04-21 16 views
1

Ich habe zwei Dateien - write.java und read.java. Die Datei write.java schreibt eine Hashtabelle in die Textdatei und die Funktion von read.java besteht darin, diese Hashtabelle aus der Textdatei zu lesen.Java - Lesen einer Hashtabelle aus einer Textdatei

write.java:

Hashtable hash1 = new Hashtable(); 
hash1.put("1", "Hi!"); 

FileWriter fileWriter = new FileWriter("abc.txt"); 
BufferedWriter bufferedWriter = new BufferedWriter(fileWriter); 
bufferedWriter.write(hash1.toString()); 
bufferedWriter.close(); 

Es schreibt peroperly in die Textdatei. Jetzt muss read.java diese Hashtabelle aus abc.txt lesen und dann einen weiteren Schlüsselwert hinzufügen. Was ist der beste Weg, dies zu erreichen?

read.java:

String dnstemp = "abc.txt"; 
FileReader fileReader = new FileReader(dnstemp); 
BufferedReader bufferedReader = new BufferedReader(fileReader); 
String line = bufferedReader.readLine(); 
bufferedReader.close(); 

Aber die line Variable ist ein String ..., wie es in einer Hash-Tabelle konvertieren weitere Operationen durchführen?

+2

Stapelüberlauf ist kein Code-Schreibdienst. Versuchen Sie, es selbst zu schreiben, dann können Sie eine Frage stellen, wenn Sie ein spezifisches Problem haben, während Sie versuchen, es zu schreiben – Natecat

+1

Schreiben Sie die Karte nicht mit 'toString()' - es wird schwierig zu analysieren. Wenn Ihre Schlüssel und Werte beide Strings sind, sollten Sie sich die Properties-Klasse ansehen. Eine andere gute Option wäre, die Karte als JSON zu serialisieren, indem eine der vielen Bibliotheken verwendet wird. – dnault

+0

meine Frage aktualisiert @Natecat – hnvasa

Antwort

0

Verwenden Sie stattdessen Eigenschaften Hashtable. Es hat die Fähigkeit zu laden und zu speichern

+0

Können Sie bitte mit einem Code-Snipper arbeiten? – hnvasa

0

Wie andere erwähnt haben, sollten Sie es nicht wirklich von seinem toString() Ausgang rekonstruieren. Nachdem Sie das gesagt haben, können Sie es mit Guava folgendermaßen erreichen:

Verwandte Themen