2011-10-03 8 views
5

私は現在、さまざまなアプリケーションでXMLまたはJSON Webサービスを使用しています。私のアプリケーションにXML/JSONレスポンスをキャッシュする最良の方法。フルテキストファイル?

私はちょうどテキストファイルのどこかに答えをキャッシュする最も簡単な方法を知りたいと思います。

私はデータベースについて考えてきましたが、これは非常に複雑すぎるようです。

だから、私は何をしたいのは、私はそのような何かを行う必要があり、

  1. は、携帯電話のメモリにこれらのXML/JSONファイルを保存するのですか?

    String FILENAME = "MyXmlFile"; 
    String string = "hello world!"; 
    
    FileOutputStream fos = openFileOutput(FILENAME, Context.MODE_PRIVATE); 
    fos.write(string.getBytes()); 
    fos.close(); 
    
  2. 私のアプリケーションのonCreateでは、このファイルを解析したいと思います。すべてのチュートリアルではWeb URLからファイルを解析する方法を示しているので、内部テキストファイルを解析する方法は見つけられませんでした。誰かがその点についてアドバイスをしていますか?

ありがとう。

答えて

0

それはあなたの書き込みXML/JSONの反対になります。 openFileInputを使用してFileInputStreamを取得します。ストリームを文字列に読み込んで解析します。

1

SharedPreferencesは、XMLファイルでもあります。あなたのJSON/XMLをまず解析し、すべてのキー/値のペアを抽出して、prefファイルに書き出します。次回は、onCreate()をロードするときに、prefからキー/値を再ロードするだけです。 このサンプルでは、​​あなたのスタートを与えるかもしれない:
http://android-er.blogspot.com/2011/01/example-of-using-sharedpreferencesedito.html

+3

、私は非常にGoogleがGSONをお勧めします - http://code.google.com/p/google-gson/ – Robert

+1

うん、GSONはただ驚くばかりです。好みのペアのキー/値に関しては、私はアイテムの数が分からないので難しいと思います。私は思い出に残っています。この番号も優先的に保存できますが、まずハーマン・シャルマのソリューションを試し、ifあなたには合いません。 –

1

もう1つの方法は、素晴らしいhttp-requestライブラリを使用することです。 ETagを使用して、レスポンスが変更されていないかどうかを確認することができます(HTTP 304 Not Modified)。変更されていない場合は、ファイルキャッシュからJSONを使用します。それ以外の場合は、新しいリソースを取得するリクエストを行います。 Javaで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(); 
関連する問題