我目前正在编写一个加密程序,用 64 位加密对文本文档进行加密。它的工作方式是接受一个字符串,并加密该字符串。我目前正在寻找一种方法让程序将文件的所有内容存储在字符串中,加密字符串,然后用加密的字符串覆盖文件。但是,使用
while((bufferedReader.readLine()) != null) {
...
}
它只读取和加密第一行,其余部分保持不变。
但是,使用:
List<String> lines = Files.readAllLines(Paths.get(selectedFile.toString()),
Charset.defaultCharset());
for (String line : lines) {
...
}
只有最后一行被加密。老实说,我不知道该做什么了,因为我有点没有想法了。
这是我当前的代码(它也只附加到文件中,因为我正在尝试新的东西。):
public static void Encrypt() throws Exception {
try {
FileWriter fw = new FileWriter(selectedFile.getAbsoluteFile(), true);
BufferedWriter bw = new BufferedWriter(fw);
List<String> lines = Files.readAllLines(Paths.get(selectedFile.toString()),
Charset.defaultCharset());
for (String line : lines) {
System.out.println(line);
System.out.println(AESencrp.encrypt(line));
bw.write(AESencrp.encrypt(line));
}
bw.close();
} catch (IOException e) {
e.printStackTrace();
}
}