এন্ড্রয়েড ডেভেলপমেন্ট [পর্ব ২৩] :: এন্ড্রয়েড এ InternalStorage এবং FileOutputStream এর ব্যবহার-শেষ পর্ব

আজকের পর্বে আমরা InternalStorage এবং FileOutputStream এর ব্যবহার প্রয়োগ শেষ করব। প্রথমেই String এ ডিক্লিয়ার করা data অবজেক্ট save মেথডে data = et.getText().toString(); এভাবে ডিক্লিয়ার করে দেয়। তারপর FileOutputStream ক্লাস এ fs কে ডিক্লিয়ার করে openFileOutput এ এভাবে ডিক্লিয়ার করে দেয় openFileOutput( file, MODE_PRIVATE);। এখানে FileOutputStream হচ্ছে এমন একটি ক্লাস যা outputstream হিসেবে কাজ করে এবং যেকোনো ফাইল read করার জন্য byte কোডকে write করে। অপরদিকে MODE_PRIVATEব্যবহার হয়েছে যেন, যেই shared preference তৈরি করা হচ্ছে তা যেন শুধুমাত্র এই অ্যাপ্লিকেশান ই ব্যবহার করা যায়।
package com.example.android22;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends Activity {

    EditText et;
   
    String data;
   
    String file = "ourdata";
   
   @Override
   protected void onCreate(Bundle savedInstanceState) 
   {
   
	   super.onCreate(savedInstanceState);
      
      setContentView(R.layout.activity_main);
      
      et = (EditText)(findViewById(R.id.editText1));

   }

   
   public void save()
   {
      
	   data = et.getText().toString();
      
      try
      {
       
    	  FileOutputStream fs = openFileOutput( file, MODE_PRIVATE);
         
         fs.write(data.getBytes());
         
         fs.close();
         
         Toast.makeText(getBaseContext(),"file saved",Toast.LENGTH_SHORT).show();
         
      } 
      
      catch (Exception e) {
         
    	  e.printStackTrace();
    	  
      }
   }
   
   
   public void read(){
      
	   try
      {
    	  
		   FileInputStream fr = openFileInput(file);
      
           int c;
         
           String temp="";
         
          while( (c = fr.read()) != -1)
       
         {
         
        	 temp = temp + Character.toString((char)c);
         
         }
         
         et.setText(temp);
         
         Toast.makeText(getBaseContext(),"file read",Toast.LENGTH_SHORT).show();

      }
      
      catch(Exception e){

      }
      
   }
   @Override
   public boolean onCreateOptionsMenu(Menu menu) {
       
	   getMenuInflater().inflate(R.menu.main, menu);
       
      return true;
      
   }

}

এখন openFileOutput এ এরর প্রদর্শন করলে try/catch দ্বারা তা ফিক্স করে দিতে হবে।তারপর ডাটাকে Byte এ write করার জন্য fs.write(data.getBytes()); এভাবে ডিক্লিয়ার করে দিতে হবে। ফাইল সেভ হবার পর Toast নোটিফিকেশান এর জন্য এভাবে দিক্লিয়ার করে দিতে হবে  Toast.makeText(getBaseContext(),"file saved",Toast.LENGTH_SHORT).show(); 
তারপর ডাটা read করার জন্য read() মেথডটি সেট করব। ফাইল read করার জন্য আমরা FileInputStream ক্লাসটি ব্যবহার করব। উপরের কোডের মত ডিক্লিয়ার করে দেয়। এখানে String কে read করার জন্য temp variable ডিক্লিয়ার করব। এবং while লোপের মধ্যে যতক্ষণ পর্যন্ত না ইনপুট দেয়া ফাইল এর -1 ইনডেক্স পর্যন্ত যাবে ততক্ষন পর্যন্ত লুপ ঘুরবে। সর্বশেষে et.setText(temp); দিয়ে টেক্সট সেট করে দিতে হবে। ফাইল রিড হবার পর Toast নোটিফিকেশান এর জন্য ডিক্লিয়ার করে দিতে হবে এভাবে  Toast.makeText(getBaseContext(),"file read",Toast.LENGTH_SHORT).show();
এখন অ্যাপটি রান করে এডিট টেক্সট এ ডাটা ইনপুট দিয়ে সেভ করার পর, তা আবার ডিলিট করে যদি রিড বাটনে প্রেস করা হয় তাহলে সেভ হওয়া টেক্সটটি আবার দেখা যাবে।
এইছিল আজকের InternalStorage এবং FileOutputStream ব্যবহার এর শেষ পর্ব
এন্ড্রয়েড ডেভেলপমেন্ট এর সর্বশেষ পর্ব সম্পর্কে নোটিফিকেশান পেতে লাইক করুন ফেসবুকের এই পেইজে এ।



Previous
Next Post »

পোস্ট সম্পর্কিত সমস্যার জন্য মন্তব্য দিন।ডাউনলোড লিঙ্ক এ সমস্যা জন্য ইনবক্স করুন Aimzworld007
ConversionConversion EmoticonEmoticon

Thanks for your comment