मैं एंड्रॉइड में टेक्स्ट फाइल कैसे पढ़ सकता हूं?


116

मैं पाठ फ़ाइल से पाठ पढ़ना चाहता हूं। नीचे दिए गए कोड में, एक अपवाद होता है (इसका मतलब है कि यह catchब्लॉक में जाता है )। मैंने एप्लिकेशन फ़ाइल को एप्लिकेशन फ़ोल्डर में डाल दिया है। इसे सही ढंग से पढ़ने के लिए मुझे यह पाठ फ़ाइल (mani.txt) कहाँ रखनी चाहिए?

    try
    {
        InputStream instream = openFileInput("E:\\test\\src\\com\\test\\mani.txt"); 
        if (instream != null)
        {
            InputStreamReader inputreader = new InputStreamReader(instream); 
            BufferedReader buffreader = new BufferedReader(inputreader); 
            String line,line1 = "";
            try
            {
                while ((line = buffreader.readLine()) != null)
                    line1+=line;
            }catch (Exception e) 
            {
                e.printStackTrace();
            }
         }
    }
    catch (Exception e) 
    {
        String error="";
        error=e.getMessage();
    }

4
आपको क्या उम्मीद है कि आपका एमुलेटर आपके s / m का एक हिस्सा है? "E: \\ test \\ src \\ com \\ test \\ mani.txt"
अथुल हरिकुमार

2
आप किस स्थान से टेक्स्ट फ़ाइल पढ़ना चाहते हैं ...?
संदीप अर्मल पाटिल

2
InputStream iS = resource.getAssets ()। Open (fileName); (यदि आप संपत्ति में फाइल रखते हैं)
अथुल हरिकुमार

1
@Sandip वास्तव में मैंने टेक्स्ट फ़ाइल (mani.txt) की प्रतिलिपि बनाई और इसे Android एप्लिकेशन (फ़ोल्डर में .settings, बिन, lib, src, आस्तियों, जीन, रेस, androidmanifeast.xml) के फ़ोल्डर में डाल दिया
user3535224

2
या बस Res / कच्चे फ़ोल्डर में डाल दिया और मेरे अद्यतन जवाब की जाँच करें।
संदीप अर्मल पाटिल

जवाबों:


242

इसे इस्तेमाल करे :

मुझे लगता है कि आपकी पाठ फ़ाइल एसडी कार्ड पर है

    //Find the directory for the SD Card using the API
//*Don't* hardcode "/sdcard"
File sdcard = Environment.getExternalStorageDirectory();

//Get the text file
File file = new File(sdcard,"file.txt");

//Read text from file
StringBuilder text = new StringBuilder();

try {
    BufferedReader br = new BufferedReader(new FileReader(file));
    String line;

    while ((line = br.readLine()) != null) {
        text.append(line);
        text.append('\n');
    }
    br.close();
}
catch (IOException e) {
    //You'll need to add proper error handling here
}

//Find the view by its id
TextView tv = (TextView)findViewById(R.id.text_view);

//Set the text
tv.setText(text.toString());

निम्नलिखित लिंक भी आपकी मदद कर सकते हैं:

मैं एंड्रॉइड में एसडी कार्ड से एक टेक्स्ट फाइल कैसे पढ़ सकता हूं?

एंड्रॉइड में टेक्स्ट फाइल कैसे पढ़ें?

एंड्रॉइड पाठ कच्चे संसाधन फ़ाइल पढ़ें


3
आपका लिंक मुझे हासिल करने में मदद करेगा
user1635224

10
बफ़रडर को अंत में बंद करने की आवश्यकता है!
रेनक्लिक क्लिक करें

2
यदि आपके txt डॉक्स में एक खाली पंक्ति है, तो यह पार्सर काम करना बंद कर देगा! इसका समाधान यह है कि इस खाली पंक्तियों को स्वीकार किया जाए: while ((line = br.readLine()) != null) { if(line.length() > 0) { //do your stuff } }
चोलत्स्की

एसडी कार्ड में फ़ाइल जोड़ने के लिए कैसे @Shruti
Tharindu Dhanushka

@ ढोलकस्की, आप यह क्यों कहते हैं कि यह काम करना बंद कर देगा? यदि कोई रिक्त रेखा है, तो रिक्त पंक्ति को StringBuilder के पाठ में जोड़ा जाएगा। समस्या क्या है?
लार्स

28

अगर आप sd card से फाइल को पढ़ना चाहते है। फिर निम्नलिखित कोड आपके लिए उपयोगी हो सकता है।

 StringBuilder text = new StringBuilder();
    try {
    File sdcard = Environment.getExternalStorageDirectory();
    File file = new File(sdcard,"testFile.txt");

        BufferedReader br = new BufferedReader(new FileReader(file));  
        String line;   
        while ((line = br.readLine()) != null) {
                    text.append(line);
                    Log.i("Test", "text : "+text+" : end");
                    text.append('\n');
                    } }
    catch (IOException e) {
        e.printStackTrace();                    

    }
    finally{
            br.close();
    }       
    TextView tv = (TextView)findViewById(R.id.amount);  

    tv.setText(text.toString()); ////Set the text to text view.
  }

    }

अगर आप एसेट फोल्डर से फाइल पढ़ना चाहते हैं तो

AssetManager am = context.getAssets();
InputStream is = am.open("test.txt");

या यदि आप फ़ोल्डर से इस फ़ाइल को res/rawपढ़ना चाहते हैं, तो फ़ाइल को अनुक्रमित किया जाएगा और R फ़ाइल में एक आईडी द्वारा पहुँचा जा सकता है:

InputStream is = getResources().openRawResource(R.raw.test);     

Res / कच्चे फ़ोल्डर से पाठ फ़ाइल पढ़ने का अच्छा उदाहरण


2
brअंततः ब्लॉक में दायरे से बाहर है।
एल्गोर्थम

6

एसेट फोल्डर में अपनी टेक्स्ट फाइल डालें ... और उस फोल्डर को फाइल फॉर्म पढ़ें ...

नीचे देखें संदर्भ लिंक ...

http://www.technotalkative.com/android-read-file-from-assets/

http://sree.cc/google/reading-text-file-from-assets-folder-in-android

एक साधारण पाठ फ़ाइल पढ़ना

आशा है कि यह मदद करेगा ...


3

सबसे पहले आप अपनी टेक्स्ट फाइल को कच्चे फोल्डर में स्टोर करें।

private void loadWords() throws IOException {
    Log.d(TAG, "Loading words...");
    final Resources resources = mHelperContext.getResources();
    InputStream inputStream = resources.openRawResource(R.raw.definitions);
    BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));

    try {
        String line;
        while ((line = reader.readLine()) != null) {
            String[] strings = TextUtils.split(line, "-");
            if (strings.length < 2)
                continue;
            long id = addWord(strings[0].trim(), strings[1].trim());
            if (id < 0) {
                Log.e(TAG, "unable to add word: " + strings[0].trim());
            }
        }
    } finally {
        reader.close();
    }
    Log.d(TAG, "DONE loading words.");
}

2

इस कोड को आज़माएं

public static String pathRoot = "/sdcard/system/temp/";
public static String readFromFile(Context contect, String nameFile) {
    String aBuffer = "";
    try {
        File myFile = new File(pathRoot + nameFile);
        FileInputStream fIn = new FileInputStream(myFile);
        BufferedReader myReader = new BufferedReader(new InputStreamReader(fIn));
        String aDataRow = "";
        while ((aDataRow = myReader.readLine()) != null) {
            aBuffer += aDataRow;
        }
        myReader.close();
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
    return aBuffer;
}

0

इसे इस्तेमाल करे

try {
        reader = new BufferedReader(new InputStreamReader(in,"UTF-8"));
    } catch (UnsupportedEncodingException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }
      String line="";
      String s ="";
   try 
   {
       line = reader.readLine();
   } 
   catch (IOException e) 
   {
       e.printStackTrace();
   }
      while (line != null) 
      {
       s = s + line;
       s =s+"\n";
       try 
       {
           line = reader.readLine();
       } 
       catch (IOException e) 
       {
           e.printStackTrace();
       }
    }
    tv.setText(""+s);
  }
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.