经理让我将一份积分入学的家长信息excel表进行加密然后存到excel中给他,由于有两万五千多的用户必须的通过代码来自动加密,直接用poi的包可以实现读写excel,但是我这里是临时加密一份excel表所以不考虑用这种,我将excel表中的数据提取出来放到txt文件中,然后读取这份txt文件,加密后再写入txt文件中,然后将它复制到excel文件中。代码如下:
@Test
public void test() {
String data = readTxtFile("C:\\Users\\zhangwei\\Desktop\\ss.txt");
//根据逗号拆分行
String[] users = data.split(",");
List<String> list = Arrays.asList(users);
DESDataEncryptor de = new DESDataEncryptor();
//用于封装所有行数据
List<List<String>> usersList = new ArrayList<List<String>>();
for(String user : list){
//根据空格拆分列
String[] infos = user.split("\t");
//用于封装一行的数据
List<String> listInfos = new ArrayList<String>();
for(int i=0;i<infos.length;i++){
//将列加密后的数据封装成行
listInfos.add(de.encrypt(infos[i]));
}
usersList.add(listInfos);
//将数据写入记事本中
writeTxtFile(usersList,"C:\\Users\\zhangwei\\Desktop\\writeFile.txt");
}
}
@Test
public void test1(){
String user = "411526198506102325\t张丽\t15959230955";
String[] infos = user.split("\t");
DESDataEncryptor de = new DESDataEncryptor();
for(int i=0;i<infos.length;i++){
System.out.println("值:"+infos[i]);
System.out.println("加密数据:"+de.encrypt(infos[i]));
}
}
//将数据写入txt中
public static void writeTxtFile(List<List<String>> data,String filename){
BufferedWriter bufferedWriter = null;
try{
bufferedWriter = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(filename)));
int i =0;
//拆分行
for(List<String> user : data){
//拆分列
for(String info :user){
//写入列
bufferedWriter.write(info);
//写入tab符
bufferedWriter.write("\t");
}
//写入换行符
bufferedWriter.write("\n");
++i;
}
System.out.println("写入成功共写入"+i+"行");
}catch (Exception e){
e.printStackTrace();
}
}
//读取txt数据
public static String readTxtFile(String filePath){
StringBuilder sb = new StringBuilder();
try {
String encoding="gbk";
File file=new File(filePath);
if(file.isFile() && file.exists()){ //判断文件是否存在
InputStreamReader read = new InputStreamReader(
new FileInputStream(file),encoding);//考虑到编码格式
BufferedReader bufferedReader = new BufferedReader(read);
String lineTxt = null;
while((lineTxt = bufferedReader.readLine()) != null){
sb.append(lineTxt).append(",");
}
System.out.println(sb);
read.close();
return sb.toString();
}else{
System.out.println("找不到指定的文件");
}
} catch (Exception e) {
System.out.println("读取文件内容出错");
e.printStackTrace();
}
return sb.toString();
}
因为我只用一次,所以这份代码写的比较粗糙,有一些地方还需要完善,大家有需要可以用于参考