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

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

做回好人,回答你吧。直接看代码:

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=0i<念迅array.lengthi++){

//字母转换这里用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)

}

}

纯手打。不采纳对不起观众啊!!!

import java.io.BufferedReader

import java.io.File

import java.io.FileNotFoundException

import java.io.FileOutputStream

import java.io.FileReader

import java.io.IOException

public class Demo

{

public static void main(String[] args)

{

File file = new File("D:\\demo1.java"辩岁敏毕)

try {

BufferedReader br = new BufferedReader(new FileReader("D:\\demo.java"))

String temp = null

StringBuffer sb = new StringBuffer()

int i = 1

while((temp = br.readLine()) != null )

{

temp = i + " " + temp

i++

sb.append(temp + "\r\携拿睁n")

}

FileOutputStream fos = new FileOutputStream(file)

fos.write(sb.toString().getBytes())

} catch (FileNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace()

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace()

}

}

}

按照你的要求编写简单加密(把每个英文字母向后移动3个字母)的Java程序如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

import java.io.BufferedReader

import java.io.BufferedWriter

import java.io.File

import java.io.FileReader

import java.io.FileWriter

public class CA {

public static void main(String[] args) {

BufferedReader br = null//定义一个缓存读取类

BufferedWriter bw = null//定义一个缓存写入类

try {

File f_Source=new File("source.txt")//原始文件

br=new BufferedReader(new FileReader(f_Source))//从字符输入流中读清如取文本,缓冲各个字符,从而实现字符、数组和行的高效读取。

File f_Target=new File("target.txt")//目标文件

bw=new BufferedWriter(new FileWriter(f_Target))//将文本写入字符输出流,缓冲各个字符,从而提供单个字符、数组和字符串的高效写入。

String s=""//定义一个临时变量,临时存储每行的文本

while((s=br.readLine())!=null){//读取文件中的每一行并存入临时变量s,直到文件末尾.

s=s.trim()//去掉每行前后的空格

String str=""//定义一个临时变量,准备写入的一行文本

for(int i=0i<s.length()i++){//遍历这一行文本的每个字符

char ch=s.charAt(i)//把这一行文本的中一个字符赋给一个字符变量

if(Character.isLetter(ch)){//如果这个字符是字母

if(Character.isUpperCase(ch)){//如果这个字符是大写字母

if(ch-'A'+3>25){//如果这个字符向后移3个字符大于Z

ch=(char) ('A'+(ch-'A'+3)%26)//这个字符从A向后移相应的字符

}else{//如侍正枣果这个字符向后移3个字符不大于Z

ch=(char) (ch+3)//这个字符向后移3个字符

}

}

if(Character.isLowerCase(ch)){//如果这个字符是小写字母

if(ch-'a'+3>25){//如果这个字符向后移3个字符大于z

ch=(char) ('a'+(ch-'a'+3)%26)//这个字符从a向后移相应的字符

}else{//如果这个字符向后移3个字符不大于z

ch=(char) (ch+3)//这个字符向后移3个字符

}

}

}

str=str+ch//把每个加密或没加密的字符重新拼装成一行字符串

}

bw.write(str)//把这一行字符串写入目标文件

bw.newLine()//目标文件写入换行符

}

} catch (Exception e) {//捕获异常

e.printStackTrace()//输出异常信息

}finally{

try {

bw.close()//关闭写入缓冲流

br.close()//关闭读取缓冲流

} catch (Exception e) {//捕获异常

e.printStackTrace()//输出异常信息

}

}

System.out.println("文件加密完毕!")

}

}

运行结果:老拆

source.txt文件内容

we are the world.

abc xyz.

target.txt文件加密内容

zh duh wkh zruog.

def abc.


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12248139.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-22
下一篇 2023-05-22

发表评论

登录后才能评论

评论列表(0条)

保存