我想从文件浏览器的用户那里获取文件,并将其作为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();
}
这里的主要问题是输出与输入完全不同。任何改正或想法都会很棒。 :)
提前致谢!