如何在不创建新文件和复制的情况下修改文件拳头256kb?

时间:2011-08-23 05:59:01

标签: java android encryption file-io

我正在从亚马逊S3服务器下载一些音频/视频/ PDF文件。我正在做的是在下载开始时加密每个文件的唯一第一个256kb。 最近我添加了简历功能。我想要做的是等待完整的文件下载。一个完成然后我将加密第一个256kb的文件。

  

我想加密第一个256kb的文件而不为其创建新文件。好像我在256kb后创建一个新的,我必须将其他字节复制到新文件。这需要一些时间,因为文件大小可以是200MB到500MB。

最佳解决方案是什么? 我正在使用JDK1.6下载是通过输入/输出流。

import java.io.InputStream;
import java.io.FileOutputStream;

2 个答案:

答案 0 :(得分:2)

您可能想要使用RandomAccessFile。读取你的250K,加密内存,覆盖在同一个文件中。

答案 1 :(得分:1)

其他选项是创建自己的CustomInputStream类,该类扩展InputStream。当你从customInputStream读取时,保持读取字节数达到256时读取的字节数你可以解密它们然后你可以调用super.read()方法。