最佳实践从URL中读取JSON,并将其存储在SD卡以供离线使用(Best practices to

2019-10-29 01:50发布

我使用GSON来分析在不同的我的应用程序的一些JSON饲料。

我用这个教程和这个代码,使其工作: http://www.javacodegeeks.com/2011/01/android-json-parsing-gson-tutorial.html

InputStream source = retrieveStream(url);
Gson gson = new Gson();
Reader reader = new InputStreamReader(source);

//***************************************************
//Should I add some code here to save to SDCARD?
//***************************************************

SearchResponse response = gson.fromJson(reader, SearchResponse.class);
List<Result> results = response.results;
for (Result result : results) {
    Toast.makeText(this, result.fromUser, Toast.LENGTH_SHORT).show();
}

我的问题是设置在注释:我应该怎么做,以拯救这个InputStreamReader的到我的SD卡用于离线使用?

我用Google搜索了很多,但无法找到一种方法来实现这一目标。

我想这一次我将有答案,我将代替与代码3第一行:

InputStream source = new InputStream("/sdcard/my_json_file.txt");

感谢很多的帮助,我想我并不需要达到的唯一一个...

Answer 1:

  1. 创建要写入文件一个FileOutputStream。
  2. 复制source到您创建的FileOuputStream -见下文-
  3. 关闭source
  4. 难道像你说的,并创建路径中的新的FileInputStream所创建的文件
  5. 发送新流的InputStreamReader你

      public static void copyStream(InputStream input, OutputStream output) { byte[] buffer = new byte[32768]; int read; while ((read = input.read(buffer, 0, buffer.length)) > 0) { output.write (buffer, 0, read); } } 


文章来源: Best practices to read JSON from URL, and store it on SDCard for offline use