আমি কীভাবে অ্যান্ড্রয়েডে একটি পাঠ্য ফাইল পড়তে পারি?


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
আপনি কী আশা করছেন যে আপনার এমুলেটরটি আপনার এস / মিটার অংশ? "E: \\ পরীক্ষা \\ src \\ com \\ পরীক্ষা \\ mani.txt"
আথুল হরিকুমার

2
আপনি কোন অবস্থান থেকে পাঠ্য ফাইলটি পড়তে চান ...?
সন্দীপ আর্মল পাতিল

2
ইনপুট স্ট্রিম আইএস = রিসোর্স.জেটসেটস ()। খোলা (ফাইলের নাম); (আপনি যদি সম্পদে ফাইলটি
রাখেন

1
আসলে আমি কপি করা টেক্সট ফাইল (mani.txt) @Sandip এবং অ্যান্ড্রয়েড আবেদন ফোল্ডারে রাখা (ফোল্ডার থাকার .settings, বিন, লিব, SRC, সম্পদ, জনক, মাঝামাঝি, androidmanifeast.xml)
user1635224

2
অথবা কেবল রাইজ / কাঁচা ফোল্ডারে রেখে আমার আপডেট হওয়া উত্তরটি পরীক্ষা করে দেখুন।
সন্দীপ আর্মল পাতিল

উত্তর:


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
আপনার লিঙ্কটি আমাকে অর্জন করতে সহায়তা করবে
ব্যবহারকারী 1635224

10
বাফার্ডার্ডারটি শেষে বন্ধ হওয়া দরকার!
রেইন ক্লিক ক্লিক

2
আপনার যদি txt ডক্টে একটি ফাঁকা সারি থাকে তবে এই পার্সার কাজ করা বন্ধ করে দেবে! সমাধানটি এই খালি সারি থাকা স্বীকার করে নেওয়া উচিত: while ((line = br.readLine()) != null) { if(line.length() > 0) { //do your stuff } }
Choletski

@ শ্রুতি কীভাবে এসডি কার্ডে ফাইল যুক্ত করবেন
থারিন্ডু ধনুশকা

@ চোলটস্কি, আপনি কেন বলছেন যে এটি কাজ করা বন্ধ করবে? যদি একটি ফাঁকা লাইন থাকে তবে ফাঁকা লাইনটি স্ট্রিংবিল্ডার পাঠ্যে যুক্ত করা হবে। সমস্যা কি?
লার্শ

28

আপনি চাইলে এসডি কার্ড থেকে ফাইলটি পড়তে পারেন। তাহলে নিম্নলিখিত কোডগুলি আপনার পক্ষে সহায়ক হতে পারে।

 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ফোল্ডারী থেকে পড়তে চান তবে ফাইলটি সূচী করা হবে এবং আর ফাইলের কোনও আইডি দ্বারা অ্যাক্সেসযোগ্য:

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

রেজ / কাঁচা ফোল্ডার থেকে পাঠ্য ফাইলটি পড়ার ভাল উদাহরণ


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);
  }
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.