将数据库保存在app文件夹中,卸载应用程序时无法清除

时间:2015-02-12 08:00:59

标签: android database

我想将我的数据库存储在app文件夹中,就像保存图像一样,这样在卸载应用程序时就不会清除,这是可能的。

任何人都可以建议如何实现,否则给我替代选项

提前致谢

1 个答案:

答案 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路径