java - 是否可以将数据库文件保存到SD卡?

标签 java android database save sd-card

<分区>

Possible Duplicate:
Is it possible to copy database file to SD card?

我的 Android 手机上有一个数据库,我需要将信息存储到 SD 卡上。

是否可以将数据库文件以可读状态保存到SD卡上?我一直无法找到有关如何执行此操作的任何信息。我知道数据库的名称和字段等...

我找到了一些展示如何保存到 SD 卡的示例,但并不是我所需要的。

一些将数据库文件复制到 SD 卡的源代码将是完美的。

希望这个问题足够清楚。

最佳答案

是的。这是我使用的功能:

public void copyDBToSDCard() {
    try {
        InputStream myInput = new FileInputStream("/data/data/com.myproject/databases/"+DATABASE_NAME);

        File file = new File(Environment.getExternalStorageDirectory().getPath()+"/"+DATABASE_NAME);
        if (!file.exists()){
            try {
                file.createNewFile();
            } catch (IOException e) {
                Log.i("FO","File creation failed for " + file);
            }
        }

        OutputStream myOutput = new FileOutputStream(Environment.getExternalStorageDirectory().getPath()+"/"+DATABASE_NAME);

        byte[] buffer = new byte[1024];
        int length;
        while ((length = myInput.read(buffer))>0){
            myOutput.write(buffer, 0, length);
        }

        //Close the streams
        myOutput.flush();
        myOutput.close();
        myInput.close();
        Log.i("FO","copied");

    } catch (Exception e) {
        Log.i("FO","exception="+e);
    }


}

对于我从事的项目,我在主屏幕中放置了一个菜单选项,我可以随时从中调用此功能。然后,我将数据库移动到我的桌面并使用适用于 FireFox 的 SQLite 管理器插件将其打开。

关于java - 是否可以将数据库文件保存到SD卡?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7744904/

相关文章:

java inline Streams 和 Optional<T> 在编译时

java - 在文本文件中搜索(具有特定模式)

java - 使用 next() 时扫描仪中出现 NoSuchElementException

android - 在整个 map 上绘制多边形

android - Gradle 项目同步在 Android Studio 2.3.3 中失败

mysql - 构建用户收藏夹表的正确方法是什么(性能)

php - 从 MySQL 中随机生成的数据加载更多功能

java - AES256 加密

java - 时区未检测 DST

database - 删除一个表中的行会触发另一个表中的删除