我有一个数据库文件res/raw/
文件夹。我正在打电话Resources.openRawResource()
文件名为R.raw.FileName
我得到一个输入流,但我在设备中有另一个数据库文件,因此要将该数据库的内容复制到我使用的设备数据库:
BufferedInputStream bi = new BufferedInputStream(is);
和 FileOutputStream,但我收到数据库文件已损坏的异常。我该如何继续?
我尝试使用读取文件File
and FileInputStream
路径为/res/raw/fileName
,但这也行不通。
是的,您应该能够使用openRawResource
将原始资源文件夹中的二进制文件复制到设备。
根据 API 演示 (content/ReadAsset) 中的示例代码,您应该能够使用以下代码片段的变体来读取数据库文件数据。
InputStream ins = getResources().openRawResource(R.raw.my_db_file);
ByteArrayOutputStream outputStream=new ByteArrayOutputStream();
int size = 0;
// Read the entire resource into a local byte buffer.
byte[] buffer = new byte[1024];
while((size=ins.read(buffer,0,1024))>=0){
outputStream.write(buffer,0,size);
}
ins.close();
buffer=outputStream.toByteArray();
您的文件的副本现在应该存在于buffer
,所以你可以使用FileOutputStream
将缓冲区保存到新文件。
FileOutputStream fos = new FileOutputStream("mycopy.db");
fos.write(buffer);
fos.close();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)