今天是周三,时间过得还算挺快的,经过了两个月倒是适应起这种生活了。今天下定决心,过年前准备跑掉,哈哈哈,我舅估计要气死了。虽然知道我不能在这里长久的干下去,但是半年就走也不是太好。哎,还剩下大概半年的时间,使劲学吧,尽量给企业带来点价值,吃软饭总归不太爽。今天买的小米5到了,下了个公司开发的APP,这个APP感觉好low啊,充斥着各种软**,不对,都是明摆着的**内容了。恰点饭真难啊,佟姐这边一个月都拿了8000块钱了,我这就是别人施舍给我的5000/月。虽然说佟姐这个工作内容看起来好像很容易,但是人家门槛高啊。本科985是真的吃香。哎,当年多考个3、40分就好咯,早知这样就复读去了,不过世界上可没有后悔药,过去的时光也不能重来了,努力学编程吧。老爸老妈又给我训一顿,愁死了,明明压力已经很大了,为啥又要给我增加压力呢。不说了,我想静静。
package homework; /**文件加密,文件解密 * 在这个方法中把encodingFile/decodingFile的内容进行加密(解密),然后保存到encodedFile/decodedFile文件中。 * 加密/解密算法: * 数字: * 如果不是0的数字,在原来的基础上减1,比如6变成5, 4变成3 * 如果是0的数字,变成9 * 字母字符: * 如果是非a字符,向左移动一个,比如e变成d, H变成G * 如果是a,a->z, A-Z。 * 字符需要保留大小写 * 非字母字符: * 比如',&^ 保留不变,中文也保留不变 */ import java.io.*; public class Test { public static void main(String[] args) { File encodingFile = new File("D:\\xyz\\lol.txt"); File encodedFile = new File("D:\\xyz\\test.txt"); encodeFile(encodingFile,encodedFile); File decodingFile = new File("D:\\xyz\\test.txt"); File decodedFile = new File("D:\\xyz\\test2.txt"); decodeFile(decodingFile,decodedFile); } /** * * @param encodingFile 要进行加密的文件 * @param encodedFile 加密后的文件 */ public static void encodeFile(File encodingFile, File encodedFile){ try (FileReader fr = new FileReader(encodingFile); FileWriter fw = new FileWriter(encodedFile)){ //读取源文件,定义文件内容数组 char[] fileContent = new char[(int) encodingFile.length()]; fr.read(fileContent); System.out.println("加密前的内容:"); String string1 = new String(fileContent); System.out.println(string1); //对数组进行加密 encode(fileContent); System.out.println("加密后的内容:"); String string2 = new String(fileContent); System.out.println(string2); fw.write(fileContent); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } /** * * @param decodingFile 要进行解密的文件 * @param decodedFile 解密后的文件 */ public static void decodeFile(File decodingFile, File decodedFile){ try (FileReader fr = new FileReader(decodingFile); FileWriter fw = new FileWriter(decodedFile)){ //读取源文件,定义文件内容数组 char[] fileContent = new char[(int) decodingFile.length()]; fr.read(fileContent); System.out.println("解密前的内容:"); String string1 = new String(fileContent); System.out.println(string1); //对数组进行解密 decode(fileContent); System.out.println("解密后的内容:"); String string2 = new String(fileContent); System.out.println(string2); fw.write(fileContent); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } /** * * @param fileContent 要进行加密的数组(文件内容) */ public static void encode(char[] fileContent){ for (int i = 0;i < fileContent.length;i++){ char c1 = fileContent[i]; if (isLetterOrDigit(c1)){ switch (c1){ case '9': c1 = '0'; break; case 'z': c1 = 'a'; break; case 'Z': c1 = 'A'; break; default: c1++; break; } fileContent[i] = c1; } } } public static void decode(char[] fileContent){ for (int i = 0;i < fileContent.length;i++){ char c2 = fileContent[i]; if (isLetterOrDigit(c2)){ switch(c2){ case '0': c2 = '9'; break; case 'a': c2 = 'z'; break; case 'A': c2 = 'Z'; break; default: c2--; break; } fileContent[i] = c2; } } } public static boolean isLetterOrDigit(char c){ String letterOrDigital = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; if (letterOrDigital.indexOf(c) == -1){ return false; } else { return true; } } }
package homework; import java.io.*; public class Test { public static void main(String[] args) throws UnsupportedEncodingException { String str = "中"; showCode(str); } private static void showCode(String str) { String[] encodes = { "BIG5", "GBK", "GB2312", "UTF-8", "UTF-16", "UTF-32" }; for (String encode : encodes) { showCode(str, encode); } } private static void showCode(String str, String encode) { try { System.out.printf("字符: \"%s\" 的在编码方式%s下的十六进制值是%n", str, encode); byte[] bs = str.getBytes(encode); for (byte b : bs) { //将byte转化为int int i = b&0xff; //输出字符的16进制表示 System.out.print(Integer.toHexString(i) + "\t"); } System.out.println(); } catch (UnsupportedEncodingException e) { System.out.printf("UnsupportedEncodingException: %s编码方式无法解析字符%s\n", encode, str); } } }