我目前在各种应用程序中使用XML或JSON Web服务。
我只是想知道在文本文件中将这些答案缓存的最简单方法是什么。
我一直在考虑数据库,但这似乎过于复杂!
所以,我想做的是
将这些xml / JSON文件存储在手机内存中,我应该这样做吗?
String FILENAME = "MyXmlFile";
String string = "hello world!";
FileOutputStream fos = openFileOutput(FILENAME, Context.MODE_PRIVATE);
fos.write(string.getBytes());
fos.close();
在我的应用程序的onCreate中,我想解析这个文件。由于所有教程都展示了如何从Web URL解析文件,我从未找到解析内部文本文件的方法。有人就此提出建议吗?
感谢。
答案 0 :(得分:1)
您可以应用SharedPreferences,它也是一个XML文件。首先解析您的JSON / XML,提取所有键/值然后写入您的pref文件。下次加载onCreate()时,只需从pref重新加载键/值。
这个样本可能会给你一个开始:
http://android-er.blogspot.com/2011/01/example-of-using-sharedpreferencesedito.html
答案 1 :(得分:1)
另一种方法是使用一个很棒的http-request库。它允许您使用ETag来检查响应是否未被修改(HTTP 304 Not Modified)。如果未修改,请使用文件缓存中的JSON,否则请求获取新资源。
File latest = new File("/data/cache.json");
HttpRequest request = HttpRequest.get("http://google.com");
//Copy response to file
request.body(latest);
//Store eTag of response
String eTag = request.eTag();
//Later on check if changes exist
boolean unchanged = HttpRequest.get("http://google.com")
.ifNoneMatch(eTag)
.notModified();
答案 2 :(得分:0)
它将与您编写XML / JSON相反。 使用openFileInput获取FileInputStream。将流读取为字符串,然后解析它。