java读取指定的文本文件,加密后写入另一个文件.

如题所述

在Java中实现简单加密功能,即将每个英文字母向后移动三个字母,可以按照以下代码进行编写:

首先,需要导入相关的Java输入输出流类:

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;

定义一个名为CA的公共类,并在其中定义main方法:

public class CA {
public static void main(String[] args) {
BufferedReader br = null; // 定义一个缓存读取类
BufferedWriter bw = null; // 定义一个缓存写入类
File f_Source = new File("source.txt"); // 原始文件
br = new BufferedReader(new FileReader(f_Source)); // 从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取。
File f_Target = new File("target.txt"); // 目标文件
bw = new BufferedWriter(new FileWriter(f_Target)); // 将文本写入字符输出流,缓冲各个字符,从而提供单个字符、数组和字符串的高效写入。

定义一个临时变量,临时存储每行的文本:

String s = ""; // 定义一个临时变量,临时存储每行的文本
while ((s = br.readLine()) != null) { // 读取文件中的每一行并存入临时变量s,直到文件末尾.
s = s.trim(); // 去掉每行前后的空格

定义一个临时变量,准备写入的一行文本:

String str = ""; // 定义一个临时变量,准备写入的一行文本
for (int i = 0; i < s.length(); i++) {
char ch = s.charAt(i); // 获取当前字符
if (ch - 'A' + 3 > 25) { // 如果这个字符向后移3个字符大于Z
ch = (char) ('A' + (ch - 'A' + 3) % 26); // 这个字符从A向后移相应的字符
} else { // 如果这个字符向后移3个字符不大于Z
ch = (char) (ch + 3); // 这个字符向后移3个字符
}

处理小写字母:

if (Character.isLowerCase(ch)) { // 如果这个字符是小写字母
if (ch - 'a' + 3 > 25) { // 如果这个字符向后移3个字符大于z
ch = (char) ('a' + (ch - 'a' + 3) % 26); // 这个字符从a向后移相应的字符
} else { // 如果这个字符向后移3个字符不大于z
ch = (char) (ch + 3); // 这个字符向后移3个字符
}

将加密或未加密的字符重新拼装成一行字符串:

str = str + ch; // 把每个加密或没加密的字符重新拼装成一行字符串
}

将这一行字符串写入目标文件并换行:

bw.write(str); // 把这一行字符串写入目标文件
bw.newLine(); // 目标文件写入换行符
}

处理异常并关闭流:

} catch (Exception e) { // 捕获异常
e.printStackTrace(); // 输出异常信息
} finally {
try {
bw.close(); // 关闭写入缓冲流
br.close(); // 关闭读取缓冲流
} catch (Exception e) { // 捕获异常
e.printStackTrace(); // 输出异常信息
}

输出提示信息:

}
System.out.println("文件加密完毕!");
}

运行结果:

source.txt文件内容:we are the world. abc xyz.
target.txt文件加密内容:zh duh wkh zruog. def abc.
温馨提示:答案为网友推荐,仅供参考
相似回答
大家正在搜