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

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

ইন্টারনাল স্টোরেজে ফাইল অপারেশন

অ্যান্ড্রয়েডে অ্যাপ-স্পেসিফিক ইন্টারনাল স্টোরেজে (/data/data/<package>/files/) ফাইল লিখা ও পড়া করা যায়। এটি প্রাইভেট এবং অন্য অ্যাপ অ্যাক্সেস করতে পারে না।

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

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

ধাপ ২: লেআউট (res/layout/activity_main.xml)

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
    tools:context=".MainActivity"
    android:orientation="vertical">
    <EditText
        android:id="@+id/enterText"
        android:hint="এখানে টেক্সট লিখুন"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />
    <Button
        android:id="@+id/save"
        android:text="সংরক্ষণ"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
    <TextView
        android:id="@+id/output"
        android:layout_width="wrap_content"
        android:textSize="25sp"
        android:layout_height="wrap_content" />
</LinearLayout>

ধাপ ৩: MainActivity.java

package com.example.textfilestorage;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {
    Button save;
    ArrayList list = new ArrayList<>();
    TextView output;
    EditText enterText;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        output = findViewById(R.id.output);
        enterText = findViewById(R.id.enterText);
        save = findViewById(R.id.save);

        save.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String text = enterText.getText().toString().trim();
                if (!text.isEmpty()) {
                    File dir = new File(getFilesDir(), "text");
                    if (!dir.exists()) {
                        dir.mkdir();
                    }
                    try {
                        File file = new File(dir, "sample.txt");
                        FileWriter writer = new FileWriter(file, true); // append mode
                        writer.append(text + "\n");
                        writer.flush();
                        writer.close();
                        output.setText(readFile());
                        Toast.makeText(MainActivity.this, "টেক্সট সংরক্ষিত", Toast.LENGTH_LONG).show();
                    } catch (Exception e) {
                        e.printStackTrace();
                        Toast.makeText(MainActivity.this, "ত্রুটি: " + e.getMessage(), Toast.LENGTH_SHORT).show();
                    }
                }
            }
        });
    }

    private String readFile() {
        File file = new File(getFilesDir() + "/text/sample.txt");
        StringBuilder text = new StringBuilder();
        list.clear();
        try {
            BufferedReader br = new BufferedReader(new FileReader(file));
            String line;
            while ((line = br.readLine()) != null) {
                list.add(line);
                text.append(line).append("\n");
            }
            br.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return text.toString();
    }
}

ধাপ ৪: AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
    package="com.example.textfilestorage">
    <!-- ইন্টারনাল স্টোরেজের জন্য পারমিশন প্রয়োজন নেই -->
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>

গুরুত্বপূর্ণ নোট

  • ইন্টারনাল স্টোরেজে WRITE_EXTERNAL_STORAGE পারমিশন প্রয়োজন নেই
  • FileWriter(file, true) - append মোডে খুলে পেছনে যোগ করে
  • getFilesDir() - অ্যাপের প্রাইভেট ফাইল ডিরেক্টরি রিটার্ন করে

পরিচালনা

টেক্সট লিখুন, সংরক্ষণ বাটনে ক্লিক করলে ফাইলে যোগ হবে এবং নিচে দেখাবে। ডিভাইস ফাইল এক্সপ্লোরারে /data/data/<package>/files/text/sample.txt চেক করুন।

  1. অ্যান্ড্রয়েডে Assets ফোল্ডার থেকে ফাইল পড়ার পদ্ধতি

  2. Android-এ strings.xml থেকে ভ্যালু পড়ার পদ্ধতি

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

  4. Android-এ SharedPreferences ব্যবহার করে ডেটা সংরক্ষণ, পঠন এবং সম্পাদনা