关闭。这个问题是基于意见的。它目前不接受答案。
**想改进这个问题吗?**更新这个问题,这样就可以通过编辑这篇文章用事实和引文来回答。
26天前关门了。
改进这个问题
我有一个大的100mb的文件要读和写。
String fromFile1 = "file1.zip"; // 100mb file
String toFile2 = "file2.crypt"; // empty
In a loop
1. String chunk1 = fromFile1.read("50kb"); // I read in every loop 50kb
2. toFile2.write(chunk1); // I write in every loop 50kb
循环结束后,从 file1.zip
至 file2.crypt
.
Here by this concept I can avoid reading the entire file into memory
如何在java中最有效地完成它?
1条答案
按热度按时间kx5bkwkv1#
我有一个大文件
使用
Files.newInputStream
获取一个流,它不会将整个内容读入内存,因此可以很好地处理任意大小的文件。输出也是如此:获取OutputStream
. 例如java.nio.file.Files.newOutputStream
.要加密的
将inputstream或outputstream Package 到相应配置的加密筛选器流中(使用适当的密钥),然后使用
in.transferTo(out)
这将导致整个流复制自己,加密,没有'内存泄漏',到输出流。所以我需要用base64字符串来读它
只有手卷的可怕的密码是这样工作的,所以,不,你不需要这个。
下面是一个例子。