কম্পিউটার টিউটোরিয়াল

অ্যান্ড্রয়েড অ্যাপে সিম্পল টেক্সট ফাইল পড়ার পদ্ধতি

অ্যান্ড্রয়েডে Raw Resource থেকে টেক্সট ফাইল পড়া

অ্যান্ড্রয়েড অ্যাপে `res/raw/` ফোল্ডারে রাখা টেক্সট ফাইল (`.txt`, `.json`, `.csv` ইত্যাদি) পড়ার জন্য `openRawResource()` এবং `BufferedReader` ব্যবহার করা হয়। এই টিউটোরিয়ালে একটি টেক্সট ফাইল রিড করে TextView-এ দেখানোর পদ্ধতি দেখানো হয়েছে।

প্রয়োজনীয় ধাপসমূহ

ধাপ ১: নতুন প্রজেক্ট তৈরি করুন

Android Studio-তে একটি নতুন প্রজেক্ট তৈরি করুন।

ধাপ ২: Raw রিসোর্স ফোল্ডার এবং ফাইল তৈরি করুন

  1. Project view-এ `res` ফোল্ডারে রাইট-ক্লিক → New → Android Resource Directory
  2. Resource type: `raw` নির্বাচন করুন
  3. `res/raw/` ফোল্ডারে `sample.txt` নামে একটি ফাইল তৈরি করুন
  4. ফাইলে কিছু টেক্সট লিখুন (উদাহরণ: "এটি একটি নমুনা টেক্সট ফাইল। অ্যান্ড্রয়েডে raw resource থেকে পড়া হয়েছে।")

ধাপ ৩: লেআউট ফাইল (activity_main.xml)

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="https://schemas.android.com/apk/res/android"
    xmlns:tools="https://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="16dp"
    tools:context=".MainActivity">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="20dp"
        android:text="অ্যান্ড্রয়েডে টেক্সট ফাইল পড়া"
        android:textAlignment="center"
        android:textSize="18sp"
        android:textStyle="bold" />

    <Button
        android:id="@+id/btnReadFile"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="70dp"
        android:onClick="readTextFile"
        android:text="টেক্সট ফাইল পড়ুন" />

    <TextView
        android:id="@+id/tvFileContent"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/btnReadFile"
        android:layout_marginTop="20dp"
        android:textSize="16sp"
        android:textStyle="bold" />

</RelativeLayout>

ধাপ ৪: MainActivity.java - ফাইল পড়ার লজিক

package com.example.readtextfile;

import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

public class MainActivity extends AppCompatActivity {

    TextView tvFileContent;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        tvFileContent = findViewById(R.id.tvFileContent);
    }

    public void readTextFile(View view) {
        StringBuilder stringBuilder = new StringBuilder();
        
        try {
            // Raw resource খুলুন (R.raw.sample)
            InputStream inputStream = getResources().openRawResource(R.raw.sample);
            BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
            
            String line;
            while ((line = reader.readLine()) != null) {
                stringBuilder.append(line).append("\n");
            }
            
            reader.close();
            inputStream.close();
            
            // UI-তে দেখান
            tvFileContent.setText(stringBuilder.toString());
            
            // টোস্ট-ওতে দেখান
            Toast.makeText(this, "ফাইল পড়া সম্পন্ন", Toast.LENGTH_SHORT).show();
            
        } catch (IOException e) {
            e.printStackTrace();
            tvFileContent.setText("ফাইল পড়ার সময় ত্রুটি: " + e.getMessage());
            Toast.makeText(this, "ত্রুটি: " + e.getMessage(), Toast.LENGTH_LONG).show();
        }
    }
}

আমদানি (Import) ক্লাসগুলো

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

Raw Resource-এর সাথে কাজ করার টিপস

বিষয় বিস্তারিত
ফাইল এক্সটেনশন .txt, .json, .csv, .xml, .html - যেকোনো টেক্সট ফরম্যাট
ম্যাক্স সাইজ প্রায় ১-২ MB পর্যন্ত সুপারিশ করা হয় (APK সাইজের জন্য)
এনকোডিং UTF-8 ডিফল্ট। অন্য এনকোডিং için InputStreamReader(is, "UTF-16") ব্যবহার করুন
রিসোর্স ID R.raw.filename (এক্সটেনশন ছাড়া)

বड़े ফাইল বা পারফরম্যান্সের জন্য বিকল্প

ExecutorService ব্যবহার করে ব্যাকগ্রাউন্ডে পড়া

ExecutorService executor = Executors.newSingleThreadExecutor();
executor.execute(() -> {
    try {
        InputStream is = getResources().openRawResource(R.raw.large_file);
        BufferedReader reader = new BufferedReader(new InputStreamReader(is));
        StringBuilder sb = new StringBuilder();
        String line;
        while ((line = reader.readLine()) != null) {
            sb.append(line).append("\n");
        }
        reader.close();
        
        runOnUiThread(() -> tvFileContent.setText(sb.toString()));
    } catch (IOException e) {
        e.printStackTrace();
    }
});

Scanner ব্যবহার করে (সিম্পল কেসের জন্য)

Scanner scanner = new Scanner(getResources().openRawResource(R.raw.sample));
scanner.useDelimiter("\\A"); // পুরো ফাইল একসাথে পড়া
String content = scanner.hasNext() ? scanner.next() : "";
scanner.close();

ধাপ ৫: ম্যানিফেস্ট ফাইল

সাধারণ কনফিগারেশন। কোনোพิশেষ পারমিশন দরকার নেই।

ফলাফল

অ্যাপ্লিকেশন রান করে "টেক্সট ফাইল পড়ুন" বাটনে ক্লিক করলে `res/raw/sample.txt` ফাইলের কন্টেন্ট TextView-এ প্রদর্শিত হবে।

অ্যান্ড্রয়েড অ্যাপে সিম্পল টেক্সট ফাইল পড়ার পদ্ধতি

সাধারণ সমস্যা এবং সমাধান

  • FileNotFoundException: ফাইলের নাম সঠিক কিনা চেক করুন (R.raw.sample, নয় R.raw.sample.txt)
  • OutOfMemoryError: বড় ফাইলের জন্য BufferedReader ব্যবহার করুন, পুরো ফাইল মেমোরিতে লোড করবেন না
  • Encoding Issue: ফাইল UTF-8-এ সেভ করা হয়েছে কিনা নিশ্চিত করুন
  1. অ্যান্ড্রয়েডে টেক্সট ফাইল তৈরি করে ডেটা লিখার পদ্ধতি

  2. অ্যান্ড্রয়েড অ্যাপে প্রোগ্রামেটিক্যালি টেক্সট কপি-পেস্ট করা (Ctrl+C/V)

  3. Android-এ XML ফাইল ব্যবহার করে অ্যানিমেশন তৈরির পদ্ধতি

  4. এক্সেলে টেক্সট ফাইল ইমপোর্ট করার ৪টি সহজ ও কার্যকর পদ্ধতি