java – Resources.openRawResource()发行Android

前端之家收集整理的这篇文章主要介绍了java – Resources.openRawResource()发行Android前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个数据库文件在res / raw /文件夹.我正在调用Resources.openRawResource(),文件名为R.raw.FileName,我得到一个输入流,但是我在设备中有另一个数据库文件,因此要将该数据库内容复制到我使用的设备数据库中:
BufferedInputStream bi = new BufferedInputStream(is);

和FileOutputStream,但是我收到一个例外,数据库文件已损坏.我该怎么办?
我尝试使用File和FileInputStream读取文件,路径为/ res / raw / fileName,但也不起作用.

解决方法

是的,您应该能够使用openRawResource将二进制文件从原始资源文件夹复制到设备.

根据API演示(内容/ 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,1024))>=0){
  outputStream.write(buffer,size);
}
ins.close();
buffer=outputStream.toByteArray();

您的文件的副本现在应该存在于缓冲区中,因此您可以使用FileOutputStream将缓冲区保存到新文件中.

FileOutputStream fos = new FileOutputStream("mycopy.db");
fos.write(buffer);
fos.close();
原文链接:https://www.f2er.com/java/122192.html

猜你在找的Java相关文章