الذاكرة الداخلية ( Internal Storage)

يمكن تخزين البيانات مباشرةً في الذاكرة الداخلية للجهاز, وتكون البيانات المخزنة خاصة بالتطبيق الذي تم التخزين .من خلاله والا يمكن للتطبيقات الاخرى الوصول لهذه البيانات. عند حذف التطبيق تحذف البيانات المتعلقة به تلقائيا

لإنشاء وتخزين ملف في الذاكرة الداخلية يمكن استعمال الخطوات التالية :

  1. نفذ الدالة ()openFileOutput ومرر لها اسم الملف المراد انشاؤه وتخزينه ووضع الوصول Operating mode .تقوم هذه الدالة بإنشاء الملف وإرجاع كائن من نوع FileOutputStream والذي من خالله يتم الكتابة إلى الملف.
  2. نظراً لأن FileOutputStream يستخدم لكتابة البيانات بالصيغة الأولية Bytes , و حتى تتمكن من كتابة أي نص, أنشئ كائن من نوع PrintWriter ومرر له الكائن من نوع.
  3. اكتب إلى الملف باستخدام الدالة ()print.
  4. أغلق الكائنات من نوعFileOutputStream و PrintWriter ذلك حتى لا يبقى الملف مفتوحا بعد الإنتهاء منه .

هذه الخطوات موضحة في الكود التالي:

لاحظ أن وضع الوصول PRIVATE_MODE يعني أن الوصول للملف خاص بالتطبيق الحالي فقط.

لقراءة ملف سبق تخزينه في الذاكرة الداخلية يمكن اتباع الخطوات التالية.

  1. نفذ الدالة ()openFileInput ومرر لها اسم الملف المراد فتحه. هذه الدالة تقوم بإرجاع كائن من نوع .FileInputStream
  2. حتى تتمكن من قرأت الملف سطرا سطرا , انشئ كائن من نوع BufferedReader ومرر له كائن من نوع FileInputStream
  3. اقرأ محتويات الملف سطرا سطرا بإستخدام الدالة readLine حتى تصل لإخر الملف عندها ترجع الدالة readLine قيمة null
  4. اغلف الكائنات من نوع BufferedReader و FileInputStream .

هذه الخطوات موضحة بالكود التالي:

الذاكرة الخارجية (External Storage)

يدعم نظام أندرويد حفظ الملفات في الذاكرة الخارجية والتي قد تكون ذاكرة يمكن إزالتها وتركيبها removable مثل Card SD ,أو ذاكرة ثابتة لا يمكن إزالتها. الملفات المخزنة في الذاكرة الخارجية يمكن الوصول إليها من أي تطبيق آخر وذلك بعكس الملفات المخزنة بالذاكرة الداخلية والتي تكون خاصة بالتطبيق.

 

يجب قبل محاولة الوصول للذاكرة الخارجية التأكد من أن الذاكرة متوفرة عن طريق تنفيذ الدالة ()getExternalStorageState .الذاكرة الخارجية قد تكون في حالة “موجودة  ” Mounted”او مفقودة ” missing ” او للقراءة فقط” only read  بالإضافة لحالات أخرى.

المثال التالي يوضح دالتين لفحص حالة الذاكرة الخارجية: الاولى تفحص إذا كانت الذاكرة متوفرة للكتابة والقراءة بينما تفحص الثانية إذا كانت الذاكرة متوفرة للقراءة فقط.

المثال التالي يوضح كيفية تخزين ملف في الذاكرة الخارجية. الدالة ()Environment.getExternalStorageDirectory.  تقوم بإرجاع مسار المجلد الذي يمثل الذاكرة الخارجية حيث يمكن حفظ الملفات.