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