कुछ भी जटिल करने की बहुत कम आवश्यकता है, बल्कि केवल SQLiteDatabase फ़ाइल को सहेजें।
मूल रूप से रूम डीबी को बंद करें और फिर फाइल को सेव करें।
जैसे निम्नलिखित एक बहुत ही प्राथमिक उदाहरण है जो डीबीसेव्स नामक उप-निर्देशिका में डाउनलोड निर्देशिका में सहेजता है:-
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
resetSequenceAction();
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
verifyStoragePermissions(this);
}
}
@Override
protected void onStart() {
super.onStart();
mTestDB = Room.databaseBuilder(this,TestDatabase.class,TestDatabase.DBNAME).build();
addSomeData();
addSomeData();
addSomeData();
addSomeData();
mTestDB.close();
File dbfile = this.getDatabasePath(TestDatabase.DBNAME);
File sdir = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS),"DBsaves");
String sfpath = sdir.getPath() + File.separator + "DBsave" + String.valueOf(System.currentTimeMillis());
if (!sdir.exists()) {
sdir.mkdirs();
}
File savefile = new File(sfpath);
try {
savefile.createNewFile();
int buffersize = 8 * 1024;
byte[] buffer = new byte[buffersize];
int bytes_read = buffersize;
OutputStream savedb = new FileOutputStream(sfpath);
InputStream indb = new FileInputStream(dbfile);
while ((bytes_read = indb.read(buffer,0,buffersize)) > 0) {
savedb.write(buffer,0,bytes_read);
}
savedb.flush();
indb.close();
savedb.close();
} catch (Exception e) {
e.printStackTrace();
}
}
public void verifyStoragePermissions(Activity activity) {
final int REQUEST_EXTERNAL_STORAGE = 1;
String[] PERMISSIONS_STORAGE = {
//Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE
};
int permission = ActivityCompat.checkSelfPermission(
activity,
Manifest.permission.WRITE_EXTERNAL_STORAGE);
if(permission != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(
activity,
PERMISSIONS_STORAGE,
REQUEST_EXTERNAL_STORAGE
);
}
}
-
केवल बाहरी संग्रहण पर लिखने की अनुमति प्राप्त करने के लिए शामिल onCreate और VerifyStoragePermissions विधियों पर ध्यान दें (नोट उपयोगकर्ता अनुमतियाँ भी मेनिफेस्ट में सेट हैं)।
- आयात की बात यह है कि इसे कमरे के बाहर करना है (इसी तरह यदि आप बैकअप से पुनर्स्थापित करना चाहते हैं)।
दौड़ने के बाद :-
और फिर फ़ाइल को एक पीसी में कॉपी करना और SQLite प्रबंधक के साथ खोलना :-
यह पूरी तरह से अपेक्षित है और जैसा कि अत्यधिक पोर्टेबल दिखाया गया है यानी आप इसे किसी भी SQLite टूल में छोड़ सकते हैं (ऐसे टूल द्वारा उपयोग किया जाने वाला SQLite संस्करण एक प्रतिबंधात्मक कारक हो सकता है)