java – Resources.openRawResource()发行Android
发布时间:2020-12-14 05:33:01 所属栏目:Java 来源:网络整理
导读:我有一个数据库文件在res / raw /文件夹.我正在调用Resources.openRawResource(),文件名为R.raw.FileName,我得到一个输入流,但是我在设备中有另一个数据库文件,因此要将该数据库的内容复制到我使用的设备数据库中: BufferedInputStream bi = new BufferedIn
我有一个数据库文件在res / raw /文件夹.我正在调用Resources.openRawResource(),文件名为R.raw.FileName,我得到一个输入流,但是我在设备中有另一个数据库文件,因此要将该数据库的内容复制到我使用的设备数据库中:
BufferedInputStream bi = new BufferedInputStream(is); 和FileOutputStream,但是我收到一个例外,数据库文件已损坏.我该怎么办? 解决方法
是的,您应该能够使用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(); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |