检查代码。import java.io.*; public class SecretExample { public static void main(String args[]) { File fileOne = new File("hello.txt"), fileTwo = new File("hello.secret"); char b[] = new char[100]; try { FileReader in = new FileReader(fileOne); // 创建指向fileOne的字符输入流 FileWriter out = new FileWriter(fileTwo); // 创建指向fileTwo字符输出流 int n = 1; while ((n = in.read(b)) != -1) { for (int i = 0; i < n; i++) { b[i] = (char) (b[i] ^ 'a'); } out.write(b, 0, n); // out将数组b的前n单元写到文件 } out.close(); // out关闭 in = new FileReader(fileTwo); // 创建指向fileTwo的字符输入流 System.out.println("加密后的文件内容:"); while ((n = in.read(b)) != -1) { String str = new String(b, 0, n); System.out.println(str); } in = new FileReader(fileTwo); // 创建指向fileTwo的字符输入流 System.out.println("解密后的文件内容:"); while ((n = in.read(b)) != -1) { for (int i = 0; i < n; i++) { b[i] = (char) (b[i] ^ 'a'); } System.out.printf(new String(b, 0, n)); } in.close(); // in关闭 } catch (IOException e) { System.out.println(e); } } }
时间: 2024-03-11 14:46:17 浏览: 43
java_io.rar_java 文件操作_java 读取 本地文件_java.io转动_文件操作
这是一个简单的文件加密和解密程序,它读取一个名为 "hello.txt" 的文件并将其加密后写入名为 "hello.secret" 的新文件中。加密后,程序打印出加密后的内容,然后将其解密并打印出原始内容。程序使用异或运算来加密和解密数据。
这段代码的主要问题在于它没有考虑到文件可能有特殊字符或换行符等。在读取和写入文件时,最好使用字节流而不是字符流。另外,该程序的加密算法也很简单,容易被破解。如果需要更安全的加密算法,请使用专业的加密库而不是自己编写代码。
最后,由于该程序使用了文件输入和输出,所以在运行程序之前,确保文件 "hello.txt" 存在并包含要加密的内容。
阅读全文