2011-10-03 11 views
5

मैं वर्तमान में अपने विभिन्न अनुप्रयोगों में एक्सएमएल या जेएसओएन वेबसाइसेस का उपयोग कर रहा हूं।मेरे आवेदन में एक्सएमएल/जेएसओएन प्रतिक्रिया को कैश करने का सबसे अच्छा तरीका। पूर्ण पाठ फ़ाइल?

मैं सिर्फ यह जानना चाहता हूं कि टेक्स्ट फ़ाइलों में किसी भी चीज को कैश करने का सबसे आसान तरीका क्या होगा।

मैं डेटाबेस के बारे में सोच रहा हूं, लेकिन यह काफी जटिल लगता है!

तो, मुझे क्या करना चाहते हैं,

  1. फोन स्मृति में इन xml/JSON फ़ाइलों को स्टोर करने के लिए है मैं ऐसा ही कुछ करना चाहिए?

    String FILENAME = "MyXmlFile"; 
    String string = "hello world!"; 
    
    FileOutputStream fos = openFileOutput(FILENAME, Context.MODE_PRIVATE); 
    fos.write(string.getBytes()); 
    fos.close(); 
    
  2. मेरे आवेदन के क्रिएट में, मैं इस फ़ाइल को पार्स करना चाहता हूं। चूंकि सभी ट्यूटोरियल वेब यूआरएल से फ़ाइल को पार्स करने के तरीके दिखा रहे हैं, इसलिए मुझे आंतरिक टेक्स्ट फ़ाइल को पार्स करने का कोई तरीका नहीं मिला। क्या किसी को उस बिंदु पर सलाह है?

धन्यवाद।

उत्तर

0

यह अपने लिखने XML/JSON के विपरीत होगा: यह नमूना आप एक शुरुआत दे सकता है। FileInputStream प्राप्त करने के लिए openFileInput का उपयोग करें। एक स्ट्रिंग में स्ट्रीम पढ़ें और फिर इसे पार्स करें।

1

आप साझा किए गए संदर्भ लागू कर सकते हैं, जो एक XML फ़ाइल भी है। बस अपने JSON/XML को पहले पार्स करें, कुंजी/मानों की सभी जोड़ी निकालें और फिर अपनी pref फ़ाइल पर लिखें। अगली बार, क्रिएट() पर लोड करते समय, pref से कुंजी/मानों को फिर से लोड करें।
http://android-er.blogspot.com/2011/01/example-of-using-sharedpreferencesedito.html

+3

जावा में JSON को पार्स के लिए, मैं अत्यधिक गूगल द्वारा GSON की सिफारिश करेंगे - http://code.google.com/p/google-gson/ – Robert

+1

हाँ, GSON सिर्फ भयानक है। वरीयताओं में जोड़ों की कुंजी/मूल्यों के बारे में, मुझे लगता है कि मुझे कड़ी मेहनत होगी क्योंकि मुझे आइटम की संख्या नहीं है, मेरे पास स्मृति है, मैं इस नंबर को वरीयता में भी स्टोर कर सकता हूं, लेकिन मैं पहले हमंत शर्मा समाधान का प्रयास करूंगा और यदि फिट नहीं है, तुम्हारा प्रयास करेगा। –

1

एक और तरीका एक भयानक http-request लाइब्रेरी का उपयोग करना है। यह आपको यह जांचने के लिए ईटीएजी का उपयोग करने की अनुमति देता है कि प्रतिक्रिया संशोधित नहीं है (HTTP 304 संशोधित नहीं है)। यदि संशोधित नहीं किया गया है, तो फ़ाइल कैश से 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(); 
संबंधित मुद्दे

 संबंधित मुद्दे