বাংলায় অ্যান্ড্রয়েড সহায়িকা - Bangla Android Guide

ইন্টারনাল স্টোরেজে ফাইল সেভ করা

যখন ইন্টারনাল স্টোরেজে একটি ফাইল সেভ করবেন, দুইটা মেথডের একটি কল করে আপনি একটি File হিসাবে একটি যথাযথ ডিরেক্টরী পেতে পারেন:

getFilesDir()

আপনার অ্যাপের জন্য একটা ইন্টার্নাল ডিরেক্টরীর প্রতিনিধিত্বকারী একটা File ফিরিয়ে আনে

getCacheDir()

আপনার অ্যাপের অস্থায়ী পধপযব ফাইলের জন্য একটা ইন্টার্নাল ডিরেক্টরীর প্রতিনিধিত্বকারী একটা ফাইল ফিরিয়ে আনে। যখন আর প্রয়োজন হবে না তখন প্রতিটা ফাইল ডিলিট করাটা নিশ্চিত করুন এবং যে কোন নির্দিষ্ট সময়ে যে পরিমান মেমরী আপনি ব্যবহার করেন তার সাথে সামঞ্জস্যপূর্ণ সাইজ লিমিট বাস্তবায়ন করুন, যেমন ১ মেগাবাইট (MB)। সিস্টেমটি যদি খুব কম স্টোরেজ এ রান করা শুরু করে, এটা কোন পূর্ব সতর্কতা ছাড়াই আপনার পধপযব ফাইল ডিলিট করে দিতে পারে।

এই ডিরেক্টরীর যে কোন একটাতে একটা নতুন ফাইল তৈরী করতে, উপরোক্ত মেথড যা আপনার ইন্টারনাল স্টোরেজ ডিরেক্টরী কে সুনির্দিষ্ট করে সেটা কর্তৃক প্রদত্ত File পাস করতে আপনি File()কনস্ট্রাকটর ব্যবহার করতে পারেন। উদাহরণস্বরূপ:

File file = new File(context.getFilesDir()
filename);

অপরপক্ষে, আপনি একটি FileOutputStream পেতে openFileOutput() কল করতে পারেন যা আপনার ইন্টারনাল ডিরেক্টরীর একটি ফাইলে লিখে। উদাহরণস্বরূপ, এখানে দেয়া হলো কীভাবে কিছু টেক্সট ফাইলে লিখতে হয়:

String filename = "myfile";
String string = "Hello world!";
FileOutputStream outputStream;

try {
  outputStream = openFileOutput(filename, Context.MODE_PRIVATE);
  outputStream.write(string.getBytes());
  outputStream.close();
} catch (Exception e) {
  e.printStackTrace();
}

অথবা যদি আপনার কিছু ফাইল গুপ্ত অবস্থায় সঞ্চয় করার প্রয়োজন হয়, পরিবর্তে আপনার createTempFile()ব্যবহার করা উচিত। উদাহরণস্বরূপ, নিম্নোক্ত মেথড URL থেকে ফাইল নামকে পৃথক করে এবং আপনার অ্যাপের ইন্টারনাল ক্যাশে ডিরেক্টরীতে ওই নামে একটি ফাইল তৈরী করে:

public File getTempFile(Context context, String url) {
    File file;
    try {
        String fileName = Uri.parse(url).getLastPathSegment();
        file = File.createTempFile(fileName, null, context.getCacheDir());
    catch (IOException e) {
        // Error while creating file
    }
    return file;
}

নোট: আপনার অ্যাপের ইন্টারনাল স্টোরেজ ডিরেক্টরী অ্যান্ড্রয়েড ফাইল সিস্টেমের একটি বিশেষ লোকেশনে আপনার অ্যাপের প্যাকেজ নাম নির্দিষ্ট করে। কৌশলগতভাবে, অন্য অ্যাপ আপনার ইন্টারনাল ফাইল পড়তে পারে যদি আপনি ফাইল মোডকে রিডেবল হতে সেট করেন। কিন্তু, অন্য অ্যাপকেও আপনার অ্যাপ প্যাকেজ নেম এবং ফাইল নেম জানতে হবে। অন্য অ্যাপ আপনার ইন্টারনাল ডিরেক্টরী ব্রাউস করতে পারবে না এবং লেখার বা পড়ার প্রবেশাধিকার থাকবে না যদি না আপনি পরিষ্কারভাবে ফাইলটি রিডেবল বা রাইটেবল হতে সেট না করেন। সুতরাং যতক্ষণ আপনি ইন্টারনাল স্টোরেজের উপর আপনার ফাইলের জন্য MODE PRIVATE ব্যবহার করবেন, তারা অন্য অ্যাপের জন্য প্রবেশযোগ্য হবে না।