Java语言程序设计基础篇_编程练习题17.14 (加密文件)/17.15 (解密文件)

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

 

  • 6
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值