0

我正在尝试使用文件资源管理器从用户那里获取文件并将其作为 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();
    }

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

提前致谢!。

4

0 回答 0