Android文件到byte []和byte []到文件

时间:2014-10-29 19:29:18

标签: android sqlite blob android-file android-fileprovider

我想从文件浏览器的用户那里获取文件,并将其作为BLOB保存到SQLITE数据库。我所做的是获取文件并将其转换为byte [],代码为

>     private byte[] convertFiletoByte(String filePath) throws IOException{
>           InputStream is = new FileInputStream(filePath.toString()); 
>           ByteArrayOutputStream bos = new ByteArrayOutputStream();
>           byte[] b = new byte[1024];
>           int bytesRead;
>           while((bytesRead = is.read(b)) != -1) {
>              bos.write(b, 0, bytesRead);
>           }
>           byte[] bytes = bos.toByteArray();
>           byte[] dataToSave = Base64.encode(bytes, Base64.DEFAULT);
>           
>           return dataToSave;
>       }

然后我将它保存到数据库。从这里看起来一切都很好。

当我尝试从数据库中恢复文件并再次将其另存为文件时,文件内容会发生变化。 我想通过以下方式将字节转换为文件:

private void reconvertBytetoFile(byte[] bytes) throws StreamCorruptedException, IOException, ClassNotFoundException{
        FileOutputStream fileOuputStream = 
                new FileOutputStream("/mnt/sdcard/Download/test2.txt"); 
        fileOuputStream.write(bytes);
        fileOuputStream.close();
    }

这里的主要问题是输出与输入完全不同。任何改正或想法都会很棒。 :)

提前致谢!

0 个答案:

没有答案