java - 编写一个使用整数密钥加密 .txt 文件的 Java 程序
问题描述
这是我在 StackOverflow 上的第一个问题。希望它会足够清晰和详细。
所以我需要写2个方法,加密和解密。我的加密功能是:
public void cifra() throws FileNotFoundException,IOException {
FileInputStream in=new FileInputStream(file);
String s="";
int b;
while(in.read()!=-1) {
b=in.read()+key;
s+=b;
}
in.close();
PrintStream ps=new PrintStream(file);
ps.println(s);
ps.close();
}
我的解密功能是一样的,但有
b=in.read()-key;
但它不起作用。输出文件与未加密的初始文件不同。谢谢您的帮助!
解决方案
in.read() 以整数形式读取文件的单个字节。然后通过 s+=b 将该整数转换为字符串。
所以说 in.read() 给你 97('a' 的 ASCII 码)并且你的键是 5,你正在转身将 102 写入文件,而不是'f',这将是“编码”字符.
您的循环应该构建一个字节数组(或字节流),并且您应该将该字节数组写入文件。
这是ByteArrayOutputStream的文档,您的循环应该写入该文档,您可以反过来将其写入文件。