题目:17.14 (加密文件)
通过给文件中的每个字节加5来对文件编码。编写一个程序,提示用户输入一个输入文件名和一个输出文件名,然后将输入文件的加密版本存入输出文件。
代码示例:编程练习题17_14EncryptFiles.java
package chapter_17;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class 编程练习题17_14EncryptFiles {
public static void main(String[] args) throws IOException, FileNotFoundException{
if(args.length != 2){
System.out.println("Usage:java 编程练习题17_14EncryptFiles <InputFile> <OutputFile>");
System.exit(0);
}
DataInputStream input = new DataInputStream(new FileInputStream(args[0]));
DataOutputStream output = new DataOutputStream(new FileOutputStream(args[1]));
int bytes = input.read();
while(bytes != -1) {
output.write((char)(bytes+5));
bytes = input.read();
}
input.close();
output.close();
System.out.println("Done!");
}
}
题目:17.15 (解密文件)
假设文件是用编程练习题17.14中的编码方案加密的。编写一个程序,解码这个加密文件。程序应该提示用户输入一个输入文件名和一个输出文件名,然后将输人文件的解密版本存入输出文件。
17.15题的代码和17.14题的基本相同,只要将output.write((char)(bytes+5));中的bytes+5改为bytes-5实现反向解码。
代码示例:编程练习题17_15decryptFiles.java
package chapter_17;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class 编程练习题17_15decryptFiles {
public static void main(String[] args) throws IOException, FileNotFoundException{
if(args.length != 2){
System.out.println("Usage:java 17_14EncryptFiles <InputFile> <OutputFile>");
System.exit(0);
}
DataInputStream input = new DataInputStream(new FileInputStream(args[0]));
DataOutputStream output = new DataOutputStream(new FileOutputStream(args[1]));
int bytes = input.read();
while(bytes != -1) {
output.write((char)(bytes-5));
bytes = input.read();
}
input.close();
output.close();
System.out.println("Done!");
}
}
-
输出结果
java chapter_17/编程练习题17_14EncryptFiles Text/Exercise17_14_original.txt Text/Exercise17_14_encryption.txt
java chapter_17/编程练习题17_15decryptFiles Text/Exercise17_14_encryption.txt Text/Exercise17_15_decrypt.txt