准备好的sqlite数据库不是来自资产

时间:2017-03-12 13:48:55

标签: android sqlite apk

有没有办法在运行时将sqlite数据库从外部存储复制到资产然后再使用它?或者有没有办法在运行时将准备好的sqlite从外部存储器复制到路径下面,然后在应用程序中读取它? context.getDatabasepath。我有复制过程的问题,请帮助我,因为我收到了这个错误:

  

无法打开文件

我的问题可能看似重复,但我无法找到答案。

public void copyDataBase() throws IOException
    {
        try
        {

        String inputDB = Environment.getExternalStorageDirectory().getPath() + "/test.sqlite" ;
        File input = new File(inputDB);
        InputStream myInput = new FileInputStream(input);
        String outputFileName = databasePath + DATABASE_NAME ;
        OutputStream myoutput = new FileOutputStream(outputFileName) ;
        byte[] buffer = new byte[1024];
        int length;

        while((length = myInput.read(buffer))>0)
        {
            myoutput.write(buffer,0,length);

        }
        myoutput.flush();
        myoutput.close();
        myInput.close();
    }

    catch (Exception e)
    {
        e.printStackTrace();
    }
}

我认为应首先打开文件然后将其提供给输入流,因为错误就像:无法打开文件。请帮我。

0 个答案:

没有答案