如何从/向文本文件读取/写入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()方法对于地图。
答案 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();
希望这有帮助。