我想在android内部/外部存储器中的文件中读/写数据字典。在WP7中,他们使用IsolatedStorage直接存储字典。在IOS中,他们可以直接将NSDictionary写入文件。请有人告诉我将DataDictionary写入文件的方法。
注意:我在Map变量中有键和值。 如何将此Map直接存储到文件
答案 0 :(得分:3)
我建议将您的文字放入数据库中,原因如下
使用SQLite在android上进行数据库查找“足够快”(〜1ms)即使是 最不耐烦的用户
将大文件读入内存是一种危险的做法 内存有限的环境,如android。
尝试从“文件”中读取文件,而不是“在文件中” 记忆“正在有效地试图解决SQLite的所有问题 已经为你解决了。
Embed a database in the .apk of a distributed application [Android]
您可以通过搜索对象序列化
找到更详细的示例[编辑1]
Map map = new HashMap();
map.put("1",new Integer(1));
map.put("2",new Integer(2));
map.put("3",new Integer(3));
FileOutputStream fos = new FileOutputStream("map.ser");
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(map);
oos.close();
FileInputStream fis = new FileInputStream("map.ser");
ObjectInputStream ois = new ObjectInputStream(fis);
Map anotherMap = (Map) ois.readObject();
ois.close();
System.out.println(anotherMap);
[编辑2]
try {
File file = new File(getFilesDir() + "/map.ser");
Map map = new HashMap();
map.put("1", new Integer(1));
map.put("2", new Integer(2));
map.put("3", new Integer(3));
Map anotherMap = null;
if (!file.exists()) {
FileOutputStream fos = new FileOutputStream(file);
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(map);
oos.close();
System.out.println("added");
} else {
FileInputStream fis = new FileInputStream(file);
ObjectInputStream ois = new ObjectInputStream(fis);
anotherMap = (Map) ois.readObject();
ois.close();
System.out.println(anotherMap);
}
} catch (Exception e) {
}
[编辑3]
Iterator myVeryOwnIterator = meMap.keySet().iterator();
while(myVeryOwnIterator.hasNext()) {
String key=(String)myVeryOwnIterator.next();
String value=(String)meMap.get(key);
// check for value
}
答案 1 :(得分:0)