下载json文件并在我的Android设备上本地存储

时间:2011-09-09 19:28:28

标签: java android json

我正在进行休息调用并通过此

从服务器获取json文件
HttpGet httpget = new HttpGet("someurl");
HttpResponse response = httpclient.execute(httpget);
HttpEntity entity = response.getEntity();
InputStream source = entity.getContent();

现在我想将它存储到本地文件中我使用FileOutputStream来执行此操作但问题是如果我使用类似这样的东西如何有效地将输入流转换为输出流

FileOutputStream fos = openFileOutput(filename,Context.MODE_PRIVATE);

            int nextChar;
            while ((nextChar = source.read()) != -1) {
                fos.write((char) nextChar);
                System.out.println((char) nextChar);
                fos.flush();
            }

它存储速度非常慢我得到的文件高达100kb是否有其他更快的方法或任何其他方式我可以用来存储我的设备中的json文件?

我的应用程序大量使用这个json,我不想每次都调用REST。

感谢 Pranay

2 个答案:

答案 0 :(得分:0)

尝试使用org.apache.commons.io.IOUtils的

    IOUtils.copy(is,fos); 

让我们看看,发生了什么。谢谢,

编辑:你为什么不使用sqlite数据库?一次解析JSON结果并将其仅在一次性内容中插入数据库然后始终可以快速执行。

编辑:尝试使用android的内部存储来写js​​on文件

  try {      
       FileOutputStream fos = openFileOutput(FILENAME, Context.MODE_APPEND);
        fos.write(myJSONString.getBytes());
         fos.close();      
       //Log.d(TAG, "Written to file");  
     } 
   catch (Exception e)
     {    
        Log.d(TAG, "cought");     
         e.printStackTrace(); 
      } 

答案 1 :(得分:0)