题目: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




















