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

个文件(b.txt)中。加密算法为:如果是英文字母,则采用字母+1%26的方式转换;如果是数字则采用(1234567890)的倒数的方式转换,除此之外的符号原样输出。例如... 个文件(b.txt)中。
加密算法为:如果是英文字母,则采用字母+1% 26的方式转换;如果是数字则采用(1234567890)的倒数的方式转换,除此之外的符号原样输出。
例如:源文件内的内容为ah0123,:Mz,则目标文件内容为bi1098,:Na
展开
 我来答
a13544aaa
2013-10-15 · 超过20用户采纳过TA的回答
知道答主
回答量:343
采纳率:0%
帮助的人:69.5万
展开全部
做回好人,回答你吧。直接看代码:
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);
}
}
纯手打。不采纳对不起观众啊!!!
ihours
2013-10-14 · TA获得超过865个赞
知道小有建树答主
回答量:475
采纳率:50%
帮助的人:154万
展开全部
和你分享下我感悟很深的一句话“所谓能力就是把不可能完成的任务。找到其可完成的部分。然后最后实现全部完成”
如果你是在校学生只是说完成一个作业,而今后未必会从事软件开发工作。那你可以忽略我的罗哩罗嗦。但是相反你要做这方面的工作就要用心了。找到这里面你能做的部分,先做出来。做完后若还有时间集中攻克下做不出来的部分
首先分析下这是一个关于读写操作的问题。如果读写不会,那么留个方法直接返回字符串就当读取完成。然后在处理加密的方法里获取这个字符串。处理完毕输出给另外一个方法。这个方法作为执行写命令的实现。

至于读和写完全可以看书的例子变个行该个变量名就可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式