Java基础知识复习(六)-- 简单加密文件

1.题目

加密算法:
数字:
如果不是9的数字,在原来的基础上加1,比如5变成6, 3变成4,如果是9的数字,变成0
字母字符:
如果是非z字符,向右移动一个,比如d变成e, G变成H,如果是z,z->a, Z-A,字符需要保留大小写
非字母字符
比如’,&^ 保留不变,中文也保留不变

2.实现思路

1.先在f1中写入内容
2.查ASCII码表
3.然后实现encondeFile(File encondingFlie,File encondedFlie)方法,encondingFlie是加密前的文件,即f1,encondedFlie是加密后的文件,即f2。
4.实现encondeFile(File encondingFlie,File encondedFlie)方法时先读f1文件后使用上述加密算法,再将加密后的内容写入f2中。

在这里插入图片描述

3.参考代码

package review4;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class TestEncondeFile {
	public static void main(String[] args) throws IOException {
		File f1 = new File("d:/Test/4.txt");
		File f2 = new File("d:/Test/5.txt");
		//创建Test文件夹
		f1.getParentFile().mkdirs();
		//创建4.txt文件
		f1.createNewFile();
		//创建5.txt文件
		f2.createNewFile();
		String s = "我的手机号是:15524945335 && 我的邮箱号是[email protected]";
		char[] content = s.toCharArray();
		try(FileWriter fw = new FileWriter(f1)){
			fw.write(content);
		}catch (Exception e) {
			e.printStackTrace();
		}
		
		encondeFile(f1, f2);
		
	}
	
	public static void encondeFile(File encondingFlie,File encondedFlie) throws IOException {
		try (FileReader fr = new FileReader(encondingFlie);
			 FileWriter fw = new FileWriter(encondedFlie)){
			char[] read = new char[(int) encondingFlie.length()];
			fr.read(read);
			System.out.println("加密前的文件内容:");
			for(char r : read) {
				System.out.print(r);
			}
			System.out.println("\r\n加密后的文件内容:");
			for(char r : read) {
				//数字0~8
				if(r>=48 && r<57) {
					r+=1;
				}
				//数字9
				if(r == 57) {
					r = 48;
				}
				//字母A~Y || a~y
				if((r>=65 && r<90) || (r>=97 && r< 122)) {
					r+=1;
				}
				//字母Z
				if(r == 90 ) {
					r = 65;
				}
				//字母z
				if(r == 122) {
					r = 97;
				}
				
				System.out.print(r);
				fw.write(r);
			}
		} catch (FileNotFoundException e) {
			// TODO 自动生成的 catch 块
			e.printStackTrace();
		}
	}
}

3.运行结果

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_41900081/article/details/85377862