Java读取txt文件DES加密后写入txt文件

经理让我将一份积分入学的家长信息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();
    }

因为我只用一次,所以这份代码写的比较粗糙,有一些地方还需要完善,大家有需要可以用于参考

猜你喜欢

转载自blog.csdn.net/qq_37225699/article/details/89445037