字符串加密解密问题
package cipher;import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;
public class CipherTest {
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
System.out.println("请输入你想要加密的字符串:");
Scanner sInput=new Scanner(System.in);//从键盘输入字符串
String str=sInput.next();
char c[]=str.toCharArray();//将字符串拆分为字符到数组
// char[] cStr=new char[str.length()];//创建一个字符串数组
char[] CString=new char[100]; //缓冲数组
File fR=new File("F:"+File.separator+"encryptCipher.txt"); //加密文件
File fW=new File("F:"+File.separator+"afterCipher.txt");//加密后文件
FileReader fRead=new FileReader(fR);
FileWriter fWriter=new FileWriter(fW);
int n= -1;
while((n = fRead.read(CString)) != -1) //从文件中读取字符数组并存放到数组CString中
{
for(int i=0;i<n;i++)
{
CString[i]=(char)(CString[i]^'c');//加密存放到数组CString中
}
fWriter.write(CString,0,n);//把读出来的字符写入到加密后的文件中
}
fWriter.close();
fRead=new FileReader(fW);
System.out.println("加密后的字符是:");
while((n= fRead.read(CString))!= -1)
{
String sc=new String(CString,0,n);//把加密后的字符存放到sc中
System.out.print(sc);
}
fRead=new FileReader(fW);
System.out.println("解密后的文件内容:"); // 输出字符串
while((n= fRead.read(CString)) !=-1)
{
for(int i=0;i<n;i++)
{
CString[i]=(char)(CString[i]^'c');
}
String sj=new String(CString,0,n);//把解密后的字符存放到sj中
System.out.print(sj);
}
fRead.close();
}
}
运行后的结果没有显示出来:加密跟解密空白的,求解释,哪错了,谢谢啦
请输入你想要加密的字符串:
Sleeply
加密后的字符是:
解密后的文件内容:
--------------------编程问答-------------------- 虽然不知道你要加密的是文件的内容还是你输入的内容。不过你先看这个符不符合你要的?
--------------------编程问答-------------------- 还有如果你文件里面什么都没有,当然出现那样的结果。
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;
public class CipherTest {
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
System.out.println("请输入你想要加密的字符串:");
Scanner sInput = new Scanner(System.in);// 从键盘输入字符串
String str = sInput.next();
char[] c = str.toCharArray();// 将字符串拆分为字符到数组
// char[] cStr=new char[str.length()];//创建一个字符串数组
char[] CString = new char[100]; // 缓冲数组
File fR = new File("1.txt"); //加密文件
File fW = new File("2.txt");// 加密后文件
FileReader fRead = new FileReader(fR);
FileWriter fWriter = new FileWriter(fW);
int n = -1;
while ((n = fRead.read(CString)) != -1) //从文件中读取字符数组并存放到数组CString中
{
for (int i = 0; i < n; i++) {
CString[i] = (char) (CString[i] ^ c[i%c.length]);//加密存放到数组CString中
}
fWriter.write(CString, 0, n);// 把读出来的字符写入到加密后的文件中
}
fWriter.close();
fRead = new FileReader(fW);
System.out.println("加密后的字符是:");
while ((n = fRead.read(CString)) != -1) {
String sc = new String(CString, 0, n);// 把加密后的字符存放到sc中
System.out.print(sc);
}
fRead = new FileReader(fW);
System.out.println("解密后的文件内容:"); //输出字符串
while ((n = fRead.read(CString)) != -1) {
for (int i = 0; i < n; i++) {
CString[i] = (char) (CString[i] ^ c[i%c.length]);
}
String sj = new String(CString, 0, n);// 把解密后的字符存放到sj中
System.out.print(sj);
}
fRead.close();
}
}
请输入你想要加密的字符串:
Sleeply
加密后的字符是:
解密后的文件内容: --------------------编程问答-------------------- [Quote=引用 2 楼 的回复:]
谢咯,你这句话提醒了我,我从键盘输入后没有写入加密文件夹中,所以一直没有内容
补充:Java , Java相关