我想将我的数据库存储在app文件夹中,就像保存图像一样,这样在卸载应用程序时就不会清除,这是可能的。
任何人都可以建议如何实现,否则给我替代选项
提前致谢
答案 0 :(得分:1)
卸载应用程序时,将始终删除apps内部文件夹。你想要的是在SD卡上创建一个外部文件夹,当你删除你的应用程序时,这不会发生。
示例:
public void writeToSDCard() throws IOException {
System.out.println("Write To Sd");
File f=new File("/data/data/com.yourapp/databases/Bdr");
FileInputStream fis=null;
FileOutputStream fos=null;
try{
fis=new FileInputStream(f);
fos=new FileOutputStream("/mnt/sdcard/dumped.db");
while(true){
int i=fis.read();
if(i!=-1){
fos.write(i);
}
else{
break;
}
}
fos.flush();
}
catch(Exception e){
e.printStackTrace();
}
finally{
try{
fos.close();
fis.close();
}
catch(IOException ioe){
// System.out.println(ioe);
}
}
}
上面的代码会将您的数据库写入外部SDCard,其名称等于dumped.db
,您将在卸载时注意到这仍将保留在您的SD卡上
请勿忘记根据您的使用情况修改File f=new File("/data/data/com.yourapp/databases/Bdr");
。
另外要特别注意不要硬编码使用Enviornmant.getExternalStorage()
的SDCard路径