将LinkedHashMap写入文本文件?

时间:2016-04-30 23:08:38

标签: java dictionary collections io iterable

如何从/向文本文件读取/写入Map,特别是LinkedHashMap?我曾尝试使用Iterable接口,但这并不起作用,因为我有Map和Iterable只能使用一个参数。

地图代码:

Map<String, String> m1 = new LinkedHashMap<String, String>(16, 0.75f, true);

m1.put("John Smith", "555-555-5555");
m1.put("Jane Smith", "444-444-4444");

我知道我必须创建一个PrintWriter + BufferedWriter / PrintReader + BufferedReader对象来读/写这个文本文件,然后使用某个版本的hasNext()方法来读取,直到文件结束,我只是不确定怎么样。请帮忙!

编辑:我也不能使用Serializable接口,因为我试图将Map写入文本文件,而不是单个条目,并且没有indexOf()方法对于地图。

1 个答案:

答案 0 :(得分:0)

因为您尝试将整个地图写入文件,而不是单个条目,您可以使用writeObject()readObject()这样:

Map<String, String> m1 = new LinkedHashMap<String, String>(16, 0.75f, true);

m1.put("John Smith", "555-555-5555");
m1.put("Jane Smith", "444-444-4444");

//Write to file
FileOutputStream fout = new FileOutputStream("file.out");
ObjectOutputStream oos = new ObjectOutputStream(fout);
oos.writeObject(m1);

//Read from file
FileInputStream fin = new FileInputStream("file.out");
ObjectInputStream ois = new ObjectInputStream(fin);
Map<String, String> m2 = (LinkedHashMap<String, String>) ois.readObject();

希望这有帮助。