我相信这正是您正在寻找的 - http://cs.saddleback.edu/rwatkins/CS4B/Crypto/FileEncryptor.html
该代码有据可查,但如果您有任何问题,请直接问他们,我会尽力回答
嗯,这是使用加密最简单的方法(可能)。这绝对是个好主意。然而,仅写入和读取文本文件的简单部分可以通过
39: filename = "clear.txt";
40:
41: // Password must be at least 8 characters (bytes) long
42:
43: String password = "super_secret";
44:
46: outFile = new FileOutputStream(filename);
80: outFile.write(password);
这种阅读方法更复杂,但我会尝试解释一下
private static String readFileAsString(String filePath) throws java.io.IOException{
byte[] buffer = new byte[(int) new File(filePath).length()];
BufferedInputStream f = null;
try {
f = new BufferedInputStream(new FileInputStream(filePath));
f.read(buffer);
} finally {
if (f != null) try { f.close(); } catch (IOException ignored) { }
}
return new String(buffer);
}
基本上 byte[] 是一个原始 1 和 0 的数组(如果您不确定那是什么,请用谷歌搜索)。它将文件的所有 1 和 0 放入数组中(即与文件长度相同,即 (int) new File(filePath).length()),然后一个 fileinputstream 做了所有奇妙的魔法来转换这些 1 和 0成文字。BufferedinputStream 只是文件输入流的一个有效包装器,因为它一次读取大量字节,然后同时将它们全部转换(它将它们存储在缓冲区中,因此得名),而不是一次读取和转换 1 个字节,这很慢并且效率低下(FileInputStream 本身)。你会想用谷歌搜索的例外情况,但基本上它只是为了让你的程序在你找不到文件或者你没有读取/写入权限的情况下不会崩溃。