编写一个Java应用程序,实现将一个由英文字母、数字及其他符号构成的文件(a.txt)通过加密之后写入另外

个文件(b.txt)中。
加密算法为:如果是英文字母,则采用字母+1% 26的方式转换;如果是数字则采用(1234567890)的倒数的方式转换,除此之外的符号原样输出。
例如:源文件内的内容为ah0123,:Mz,则目标文件内容为bi1098,:Na

做回好人,回答你吧。直接看代码:
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class jiami {
public static void main(String[] args) {
String source=null,target=null;
try {
FileInputStream fileread = new FileInputStream(new File("D:/a.txt"));//路径自己改
int length = fileread.available();
byte[] buffer = new byte[length];
fileread.read(buffer);
source = new String(buffer);//读取
fileread.close();
} catch (Exception e) {
e.printStackTrace();
}
if(source==null)
System.out.println("a.txt为空");
else{
System.out.println(source);
target=zhuanhuan(source);
System.out.println(target);
try {
FileOutputStream out = new FileOutputStream(new File("D:/b.txt"));
out.write(target.getBytes());//写入
out.close();
} catch (FileNotFoundException e1) {
e1.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
public static String zhuanhuan(String s){
char []array = s.toCharArray();
for(int i=0;i<array.length;i++){
//字母转换这里用ASCII码来,方便快捷,大写字母是65-90,小写字母是97-122
int j = (int)array[i];
if(j>=65&&j<=90){
if(j==90)
j=65;
else j=j+1;
array[i]=(char)j;
}
if(j>=97&&j<=122){
if(j==122)
j=97;
else j=j+1;
array[i]=(char)j;
}
//数字转换的话由于数字比较少,就直接转换了,不用ASCII码了
if(array[i]=='1')
array[i]='0';
else if(array[i]=='2')
array[i]='9';
else if(array[i]=='3')
array[i]='8';
else if(array[i]=='4')
array[i]='7';
else if(array[i]=='5')
array[i]='6';
else if(array[i]=='6')
array[i]='5';
else if(array[i]=='7')
array[i]='4';
else if(array[i]=='8')
array[i]='3';
else if(array[i]=='9')
array[i]='2';
else if(array[i]=='0')
array[i]='1';
}
return new String(array);
}
}
纯手打。不采纳对不起观众啊!!!
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-10-14
和你分享下我感悟很深的一句话“所谓能力就是把不可能完成的任务。找到其可完成的部分。然后最后实现全部完成”
如果你是在校学生只是说完成一个作业,而今后未必会从事软件开发工作。那你可以忽略我的罗哩罗嗦。但是相反你要做这方面的工作就要用心了。找到这里面你能做的部分,先做出来。做完后若还有时间集中攻克下做不出来的部分
首先分析下这是一个关于读写操作的问题。如果读写不会,那么留个方法直接返回字符串就当读取完成。然后在处理加密的方法里获取这个字符串。处理完毕输出给另外一个方法。这个方法作为执行写命令的实现。

至于读和写完全可以看书的例子变个行该个变量名就可以了
相似回答