gpt4 book ai didi

Java - 部分修改文件

转载 作者:行者123 更新时间:2023-12-02 00:05:14 24 4
gpt4 key购买 nike

我正在开发 AES 256 位文件加密工具。现在的工作方式是:

将整个文件读入字符串,加密字符串,删除旧文件,然后将加密的 String 输出到旧 File 对象中。

这适用于小文件,但如果您尝试加密一个大文件,例如大于 java 也可以访问的堆空间的文件,您会收到错误。长话短说,我如何一次读取一个 MB 的文件作为字符串,加密该字符串,然后将该 MB 写入临时文件?这将允许对大文件进行加密。

最佳答案

不需要临时文件。只需使用文件流(FileInputStream 和 FileOutputStream)。流 I/O 正是为处理 block 中的长文件而创建的。如果您想读取/写入字符串,可以使用 FileReader/Writer。 There is an example :

  public void decrypt(File in, File out) throws IOException, InvalidKeyException {
aesCipher.init(Cipher.DECRYPT_MODE, aeskeySpec);
CipherInputStream is = new CipherInputStream(new FileInputStream(in), aesCipher);
FileOutputStream os = new FileOutputStream(out);

int i;
byte[] b = new byte[1024];
while((i=is.read(b))!=-1) {
os.write(b, 0, i);
}

关于Java - 部分修改文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14022554/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com