1 packageIOTest;2
3 importjava.io.File;4 importjava.io.FileInputStream;5 importjava.io.FileNotFoundException;6 importjava.io.FileOutputStream;7 importjava.io.FileReader;8 importjava.io.FileWriter;9 importjava.io.IOException;10
11 public classtestStream {12
13 public static voidencodeFile(File encodingFile, File encodedFile) {14 //all数组承接encoding File数据
15 char all[] = new char[(int) encodingFile.length()];16 try (FileReader fr = newFileReader(encodingFile)) {17 fr.read(all);18 } catch(FileNotFoundException e) {19 //TODO Auto-generated catch block
20 e.printStackTrace();21 } catch(IOException e1) {22 //TODO Auto-generated catch block
23 e1.printStackTrace();24 }25 //加密过程
26 for (int i = 0; i < all.length; i++) {27 if (all[i] >= '0' && all[i] < '9') {28 all[i] = (char) (all[i] + 1);29 continue;30 }31 if (all[i] == '9') {32 all[i] = '0';33 continue;34 }35 if (all[i] >= 'a' && all[i] <= 'y' || all[i] >= 'A' && all[i] <= 'Y') {36 all[i] = (char) (all[i] + 1);37 continue;38 }39 if (all[i] == 'z') {40 all[i] = 'a';41 continue;42 }43 if (all[i] == 'Z') {44 all[i] = 'A';45 continue;46 }47 }48 //把all数组写入encoded File
49 try (FileWriter fw = newFileWriter(encodedFile)) {50 fw.write(all);51 } catch(IOException e) {52 e.printStackTrace();53 }54
55 }56 public static voiddecodeFile(File decodingFile, File decodedFile){57 char all[] = new char[(int) decodingFile.length()];58 try (FileReader fr = newFileReader(decodingFile)) {59 fr.read(all);60 } catch(FileNotFoundException e) {61 //TODO Auto-generated catch block
62 e.printStackTrace();63 } catch(IOException e1) {64 //TODO Auto-generated catch block
65 e1.printStackTrace();66 }67 //解密过程
68 for (int i = 0; i < all.length; i++) {69 if (all[i] >= '1' && all[i] <= '9') {70 all[i] = (char) (all[i] - 1);71 continue;72 }73 if (all[i] == '0') {74 all[i] = '9';75 continue;76 }77 if (all[i] >= 'b' && all[i] <= 'z' || all[i] >= 'B' && all[i] <= 'Z') {78 all[i] = (char) (all[i] - 1);79 continue;80 }81 if (all[i] == 'a') {82 all[i] = 'z';83 continue;84 }85 if (all[i] == 'A') {86 all[i] = 'Z';87 continue;88 }89 }90 try(FileWriter fw=newFileWriter(decodedFile)) {91 fw.write(all);92 } catch(IOException e) {93 //TODO Auto-generated catch block
94 e.printStackTrace();95 }96 }97 public static void main(String[] args) throwsIOException {98 File f1 = new File("d:/lol2.txt");99 FileReader fr1=newFileReader(f1);100
101 System.out.println("加密前的内容:");102 char [] originData=new char[(int) f1.length()];103 fr1.read(originData);104 for(charx:originData){105 System.out.print(x);106 }107 File f2 = new File("d:/加密后的文件.txt");108 encodeFile(f1, f2);109
110 FileReader fr2=newFileReader(f2);111 System.out.println("\n加密后的内容:");112 char [] encodedData=new char[(int) f2.length()];113 fr2.read(encodedData);114 for(charx:encodedData){115 System.out.print(x);116 }117
118 File f3=new File("d:/解密后的文件.txt");119 decodeFile(f2, f3);//解密
120
121 System.out.println("\n解密后的内容:");122 FileReader fr3=newFileReader(f3);123 char []data=new char[(int) f3.length()];124 fr3.read(data);125 for(charx:data){126 System.out.print(x);127 }128 }129 }