हेल्लो दोस्तों आज के इस पोस्ट में आपको Android storage system in hindi के बारे में बताया गया है की क्या होता है कैसे काम करता है तो चलिए शुरू करते है
Contents
Introduction to Android Storage System
Android system data को स्टोर करने के लिए बहुत से options provide करता है। आप कौनसा option choose करते है ये आप पर depend करता है। यदि आपका data primitive है तो आप shared preferences use कर सकते है। यदि आपका data private है तो आप उसे internal storage में store कर सकते है। यदि आपकी application के लिए database में डेटा store करना जरुरी है तो आप SQLite database में डेटा स्टोर कर सकते है। और यदि आप चाहे तो network connection के द्वारा किसी cloud storage में भी अपना data स्टोर कर सकते है।
हाँलांकि android system इतने सारे storage option provide करता है लेकिन फिर भी अपनी application के लिए सही storage option choose करना बहुत ही necessary है। इसके लिए आपको अपने project से जुड़े हुए सभी members की advice लेनी चाहिए।
आइये अब different android storage options के बारे में detail से जानने का प्रयास करते है।
SharedPreferences एक क्लास होती है। ये क्लास आपको एक ढांचा provide करती है। इस क्लास में आप key value के pair में केवल primitive values (int , boolean, char, float, strings) store कर सकते है। जो डेटा आप shared preferences में store करते है वो different user sessions में भी available रहता है।
SharedPreferences क्लास का object प्राप्त करने के लिए आपके पास 2 options होते है। एक तो आप getSharedPreferences() method को call कर सकते है। ये method आपको तब ही use करना चाहिए जब आप बहुत सी preferences files create करना चाहते है। दूसरा option ये है की आप getPreferences() method को कॉल करे इस method के द्वारा आप सिर्फ एक ही preference file create कर सकते है।
सबसे पहले आप SharedPreferences क्लास का object क्रिएट करेंगे। इसमें आप variable का नाम और initial value पास करते है।
SharedPreferences myObj = new SharedPreferences(variable_name, initial-value); |
SharedPreferences क्लास का object क्रिएट करने के बाद value store करने के लिए आपको SharedPreferences.Editor क्लास का ऑब्जेक्ट क्रिएट करना होगा। ऐसा आप SharedPreferences क्लास के object पर edit() मेथड को कॉल करके कर सकते है।
SharedPreferences.Editor ediObj = myObj.edit(); |
अलग अलग तरह की values store करने के लिए अलग अलग methods है। जैसे की putBoolean() और putString() आदि। इन methods को आप editor object पर कॉल करते है।
ediObj.putString("name",value); |
इसके बाद आपको values को commit करना होता है।
ediObj.commit(); |
Values को read करने के लिए आप SharedPreferences क्लास के ऑब्जेक्ट पर अलग अलग methods को कॉल कर सकते है जैसे की getBoolean() और getString() आदि।
Internal Storage
आप files को device की internal memory में भी save कर सकते है। जो files internal memory में saved होती है वो private होती है, दूसरी applications इन्हे access नहीं कर सकती है। जब यूज़र आपकी application को remove करता है तो ये files भी remove हो जाती है।
किसी भी file को internal storage में save करने के लिए आपको openFileOutput() method को कॉल करना होगा। ये method FileOutputStream class का object return करता है। FileOutputStream क्लास data को file के through output करने के लिए यूज़ की जाती है। ये क्लास एक stream को represent करती है। openFileOutput() method में आप file का नाम और mode pass करते है। File के 4 mode होते है।
- MODE_PRIVATE – ये default mode होता है। इस mode में file private रहती है।
- MODE_APPEND – यदि पास किये गए नाम की file पहले से है तो नया डेटा उसी file के data के आखिर में add हो जाता है।
- MODE_WORLD_READABLE – इस तरह की files create करना security के point of view से बहुत risky होता है। इस तरह की फाइल को कोई भी दूसरी application access कर सकती है।
- MODE_WORLD_WRITABLE – इस तरह की file को कोई भी दूसरी application modify कर सकती है।
FileOutputStream का object पाने के बाद आप उस पर write() मेथड को कॉल करते है और file को save कर देते है। इसके बाद आप close method call करके output stream close कर देते है।
String name="yrName"; |
इसी प्रकार internal storage में से files को read करने के लिए आपको openFileInput() method को कॉल करना होगा। ये method FileInputStream क्लास का object return करता है। इस method में आप file का नाम पास करते है। इसके बाद आप FileInputStream के object पर read() मेथड कॉल करके file को read करते है।
FileInputStream obj = openFileInput(fileName); |
External Storage
हर android device में ये capability होती है की आप उसमे external memory add कर सकते है। ये memory removable भी हो सकती है जैसे की SD card आदि और non removable भी हो सकती है। कई बार internal memory की limit के कारण भी इस external memory को यूज़ किया जाता है। External storage में save होने वाली सभी classes world readable mode की होती है। और जब आप अपने device को PC से connect करते है तो इन files को कोई भी modify कर सकता है।
यदि आपकी application external storage में files save करना चाहती है तो इसके लिए उसको 2 तरह की system permissions की आवश्यकता होगी।
- READ_EXTERNAL_STORAGE – ये permission external storage से files को read करने के लिए होती है।
- WRITE_EXTERNAL_STORAGE – ये permission external storage में files save करने के लिए होती है।
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> |
External storage में कोई भी काम करने से पहले आपको memory का media status चेक कर लेना चाहिए। ये भी हो सकता है की external storage में कोई file ही न हो या सिर्फ readable files हो। External storage का status check करने के लिए आप getExternalStorageState() method को कॉल कर सकते है। ये method आपको files की अलग अलग states return करता है जिन से आप यूज़र को notify कर सकते है।
यदि आप files को public रखना चाहते है तो आप उन्हें public directories में save कर सकते है जैसे की Music, Pictures आदि। External storage में files save करना बहुत ही आसान है। इसके लिए आप एक file ऑब्जेक्ट create करते है और उसमे file का नाम और उस public directory का नाम भी पास करते है।
File myFile = newFile(DIRECTORY_PUBLIC, fileName); |
External storage में save की गयी files को भी आप internal storage की files के साथ use होने वाले methods से open और edit कर सकते है।
reference-https://www.tutorialspoint.com/android/android_internal_storage.htm
निवेदन:-आप सभी छात्र –छात्रों से निवेदन है की अगर आपको ये Topic(Android storage system in hindi) या post अच्छा लगा हो तो कृपया आप इस वेबसाइट के बारे में अपने दोस्तों(Android storage system in hindi) को जरुर बताये और -अगर कोई topic(Android storage system in hindi) से संबधित प्रश्न हो तो कमेंट्स(comments) आपके लिए ही बना है और किसी Subject(Android storage system in hindi) के लेकर भी कोई प्रश्न हो तो कमेंट करे