2011-05-17 15 views
14

मैं यूनी में एक यूनिट के लिए मूल नोटपैड ऐप लिख रहा हूं। मैंने मुख्य कक्षा को एक संपादन टेक्स्ट के साथ बनाया है जिसे मैं स्ट्रिंग टेक्स्टऑटपुट के रूप में सहेजता हूं।एंड्रॉइड: फ़ाइल से पढ़ना (ओपनफाइलिनपुट)

मैं एक फाइल करने के लिए स्ट्रिंग को बचाने के लिए एंड्रॉयड डेवलपर्स साइट से निम्न कोड का इस्तेमाल किया है:

पढ़ने के लिए:

  FileOutputStream fos = openFileOutput(textOutput, Context.MODE_PRIVATE); 
      fos.write(textOutput.getBytes()); 
      fos.close(); 

हालांकि, वे आप निम्नलिखित चरणों का उपयोग पढ़ने के लिए कहते हैं आंतरिक भंडारण से एक फ़ाइल:

ओपनफाइल इनपुट() को कॉल करें और इसे पढ़ने के लिए फ़ाइल का नाम पास करें। यह एक FileInputStream देता है। पढ़ने के साथ फ़ाइल से बाइट पढ़ें()। फिर बंद करें() के साथ स्ट्रीम बंद करें।

इसका क्या अर्थ है, और इसे अपने ऐप में किसने लागू किया है?

कृपया मदद करें।

उत्तर

3

पहला पैरामीटर उस फ़ाइल का नाम है जिसे आप खोल रहे हैं/openFileOutput विधि का उपयोग करते समय अद्यतन कर रहे हैं।

FileInputStream fis = openFileInput(textOutput); 

एक FileInputStream जाता है कि बहुत अच्छी तरह से यहाँ और वेब पर दस्तावेज से पढ़ने के लिए के रूप में: एक ही पैरामीटर आप इसे ऊपर सूचीबद्ध है का उपयोग करते हुए की तरह लग रहे हो सकता है। इसके बारे में जाने का सबसे अच्छा तरीका यह भी है कि आप जिस फ़ाइल को पढ़ रहे हैं उस पर निर्भर करता है (उदा। एक्सएमएल)। इसलिए मैं इसे आपके लिए खोजने के लिए छोड़ दूंगा।

संपादित करें: यहाँ documentation

+0

भी एहसास है कि आप शायद अपनी फ़ाइल एक हैश कोड (क्या toString नाम के लिए नहीं करना चाहते हैं() जावा में अपने ऑब्जेक्ट के डिफ़ॉल्ट पर वापस आ जाएगा) आप पैरामीटर के रूप में textOutput की बजाय स्ट्रिंग का उपयोग करना चाह सकते हैं। वास्तविक दस्तावेज के लिए – nibuen

+0

+ 1। अब मुझे पता है कि यह 'ओपनफाइल इनपुट' वास्तव में क्या है जिसके बारे में लोग बात कर रहे हैं। – Doomsknight

34

कैसे openFileInput उपयोग करने के लिए एक उदाहरण है:

FileInputStream in = openFileInput("filename.txt"); 
    InputStreamReader inputStreamReader = new InputStreamReader(in); 
    BufferedReader bufferedReader = new BufferedReader(inputStreamReader); 
    StringBuilder sb = new StringBuilder(); 
    String line; 
    while ((line = bufferedReader.readLine()) != null) { 
     sb.append(line); 
    } 
+4

अंत में inputStreamReader.close() को मत भूलना। – marmor

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