请教一个JAVA程序的主要功能说明?(一)

来源:百度知道 编辑:UC知道 时间:2024/05/18 03:48:12
请详细写出下面JAVA源程序代码所要完成的主要功能说明(就是这个源程序主要是干什么的,用文字表达清楚点)及各程序模块主要完成的功能
源程序如下:
import javax.swing.JOptionPane;
import java.io.*;
public class FileEncrypt{
public static void main(String[] args) {
//通过用户输入获取加密码文件、被加密的文件、加密后的文件
String fdCode = InputReader.inputText("保存加密码的文件:");
String fdOrig = InputReader.inputText("被加密的文件:");
String fdResult = InputReader.inputText("加密后的文件:");
try {
//根据加密码进行文件加密
Text aText = new Text(fdCode,fdOrig,fdResult);
aText.encrypt();
String toBePrinted = "被加密的文本内容:\n";
toBePrinted += aText.getOriginalText();
toBePrinted += "\n\n加密后的文本内容:\n";
toBePrinted += aText.getEncryptedText();

JOptionPane.showMessageDialog(null, toBePrinted);
}catch(IOException e) {
System.out.println(e.toString());
}
System.exit(0);
}
}

//文本类

用给定密钥对文件进行加密,然后用对话框形式输出明文和密文.

Text类

读三个String: code里放的密钥,originalText放明文,encryptedText放密文.要求密钥定长26个字符.

下面的get/set方法就不说了``

readText()里从文件里一行一行地读文本到临时变量text里,然后在最后处理一些格式上的问题,将text返回.
这个函数在Text的构造函数里被调用了两次,分别将明文和密钥读进上面讲到变量中.

接下来才是主要的:
encrypt()是对明文进行加密的函数.
一个循环,对明文中的每一个字符进行如下操作:
首先,判断当前字符是不是大写? big?
获得当前字符的小写形式在字母表中(注意是字母表中,不是明文中)的位置,比如a的位置是0,z的位置是25.
如果这个位置>-1(说明这个字符不是其他类型的字符,比如'&'什么的,即是说,这个字符是26个字母中的一个),那就用密钥中,相同位置处的字符替换之,如果原来是大写就用大写替换,如果原来是小写,无所谓.然后,将结果追加到密文中.
如果这个位置不是>-1的,那就直接将结果追加到密文中.
然后,就是将这个结果输出到一个文件里面了.
//将加密后的结果输出到文件
FileWriter resultConnection = new FileWriter(resultFileName, false);
PrintWriter resultWriter = new PrintWriter(
new BufferedWriter(resultConnection));
resultWriter.print(encryptedText);
resultWriter.close();

InputReader 类
一些辅助方法,处理输入的.
inputText()的作用是弹个框框来,让你输输文件名.如果没有输文件名或者输了一堆的空格就点确定了,警告一下```这个函