文件字符串互转(将SSLCERT转为字符串导入数据库)

1、需求:

具体需求不阐述,需要完成以下步骤

SSL 证书文件 ——> postgresql数据库——> SSL 证书文件

2、java代码实现文件字符串互转

源文件示例:

 

 File2String代码

package com.esoon.capital.test;

import org.apache.commons.codec.binary.Base64;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

public class File2String {
    public static void main(String[] args) {

        String filePath = "F:\\javatest\\test.key";
        String str = file2String(filePath);
        System.out.println("文件转字符串结果:start");
        System.out.println(str);
        System.out.println("文件转字符串结果:end");

    }

    public static String file2String(String path) {
        // TODO Auto-generated method stub
        File file = new File(path);
        FileInputStream fis = null;
        StringBuffer content = new StringBuffer();
        try {
            fis = new FileInputStream(file);
            int length = 2 * 1024 * 1024;
            byte[] byteAttr = new byte[length];
            int byteLength = -1;

            while ((byteLength = fis.read(byteAttr, 0, byteAttr.length)) != -1) {

                String encode = "";
                if (byteLength != byteAttr.length) {
                    byte[] temp = new byte[byteLength];
                    System.arraycopy(byteAttr, 0, temp, 0, byteLength);
                    //使用BASE64转译
                    Base64 base64 = new Base64();
                    encode = base64.encodeToString(temp);
                    //encode = new BASE64Encoder().encode(temp);
                    content.append(encode);
                } else {
                    Base64 base64 = new Base64();
                    encode = base64.encodeToString(byteAttr);
                    //encode = new BASE64Encoder().encode(byteAttr);
                    content.append(encode);
                }
            }

        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } finally {
            try {
                fis.close();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        return content.toString();
    }
}

运行结果,可以看到正常转换为string:

 

String2File代码

package com.esoon.capital.test;

import org.apache.commons.codec.binary.Base64;

import java.io.*;

public class String2File {
    public static void main(String[] args) {

        String string = "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tDQpNSUlHa0RDQ0JYaWdBd0lCQWdJUUQ2Njg2d3lrOFg3M2N1cGhpWXcrZ0RBTkJna3Foa2lHOXcwQkFRc0ZBREJlDQpNUXN3Q1FZRFZRUUdFd0pWVXpFVk1CTUdBMVVFQ2hNTVJHbG5hVU5sY25RZ1NXNWpNUmt3RndZRFZRUUxFeEIzDQpkM2N1WkdsbmFXTmxjblF1WTI5dE1SMHdHd1lEVlFRREV4UkhaVzlVY25WemRDQlNVMEVnUTBFZ01qQXhPREFlDQpGdzB4T1RBek1UZ3dNREF3TURCYUZ3MHlNVEEwTVRZeE1qQXdNREJhTUgweEN6QUpCZ05WQkFZVEFrTk9NUkl3DQpFQVlEVlFRSERBbmt1SXJtdGJmbHVJSXhOakEwQmdOVkJBb01MZVM0aXVhMXQrYVdoK1dNbHVTNnArYWRnK1M2DQpwT2FZaythSmdPaUNvZVM3dmVhY2llbVprT1dGck9XUHVERUxNQWtHQTFVRUN4TUNTVlF4RlRBVEJnTlZCQU1NDQpEQ291YzJoallXVmxMbU52YlRDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBTzNZDQorT1JOcXNoVHlBZ1hSZnIzN2doVjFDYlJFVUdZeFliZGVuU0xweGd5cENwaC9GcnVHbmVHd3kva1NJT3Z6M1JXDQpnOEpGYkNzZHZDS3lTYzhWU0NNWUxnM0Q5ZEREYnJNYVcvRVdpUnNDaTZjK1kxY2NvckNhcGVHV29zV244RlMwDQo5Q0VoaWE0ME44cldtTWdsY0VJUFhQTSthL1A5dTlBa3FEdnpGejVhcjhxaDdSYjM1QmhNWE9abGdodFltY2dFDQpSL1ZQdy80cmd4TysyNlNvR2ZPYUliVlI1UkEvSTVDWmp2dDdyN2lqQkxWL1hlYlA4V2VSUE50ME5qbDNxYVByDQp1L2hsK1RaU3FjUzNXT3BIOE5KR2l5RFQvcE5TbTQ2UXI5eFhPeEFDVytMeGphOUJPWVFhV0Fxd1dxZS9BeUo1DQphZ1JBU3EybzMyZkZRQ0xueS84Q0F3RUFBYU9DQXlrd2dnTWxNQjhHQTFVZEl3UVlNQmFBRkpCWS83Q2NkYWhSDQpWSGV4N2ZLalF4WTRubXpGTUIwR0ExVWREZ1FXQkJTWFhzTHBYTGM2ckEvK2tkaFZVMmozUmNWVU16QWpCZ05WDQpIUkVFSERBYWdnd3FMbk5vWTJGbFpTNWpiMjJDQ25Ob1kyRmxaUzVqYjIwd0RnWURWUjBQQVFIL0JBUURBZ1dnDQpNQjBHQTFVZEpRUVdNQlFHQ0NzR0FRVUZCd01CQmdnckJnRUZCUWNEQWpBK0JnTlZIUjhFTnpBMU1ET2dNYUF2DQpoaTFvZEhSd09pOHZZMlJ3TG1kbGIzUnlkWE4wTG1OdmJTOUhaVzlVY25WemRGSlRRVU5CTWpBeE9DNWpjbXd3DQpUQVlEVlIwZ0JFVXdRekEzQmdsZ2hrZ0JodjFzQVFFd0tqQW9CZ2dyQmdFRkJRY0NBUlljYUhSMGNITTZMeTkzDQpkM2N1WkdsbmFXTmxjblF1WTI5dEwwTlFVekFJQmdabmdRd0JBZ0l3ZFFZSUt3WUJCUVVIQVFFRWFUQm5NQ1lHDQpDQ3NHQVFVRkJ6QUJoaHBvZEhSd09pOHZjM1JoZEhWekxtZGxiM1J5ZFhOMExtTnZiVEE5QmdnckJnRUZCUWN3DQpBb1l4YUhSMGNEb3ZMMk5oWTJWeWRITXVaMlZ2ZEhKMWMzUXVZMjl0TDBkbGIxUnlkWE4wVWxOQlEwRXlNREU0DQpMbU55ZERBSkJnTlZIUk1FQWpBQU1JSUJmUVlLS3dZQkJBSFdlUUlFQWdTQ0FXMEVnZ0ZwQVdjQWR3QzcyZCs4DQpINHB4dFpPVUk1ZXFrbnRIT0ZlVkNxdFM2QnFRbG1RMmpoN1JoUUFBQVdtUHJNTklBQUFFQXdCSU1FWUNJUUNvDQpvZWZCMEZOZzE2Ym5LZ1hJcFNKUGtyZTVGMW1HbjVWdzcvbERpQmt1d0FJaEFMcUFtUDZhVTlzT0oxaGpRUzczDQpTSzlSRCtLcjJRZmtxaHZUeVFuRDRoSmdBSFVBaDNXLzUxbDgrSXhEbVYrOTgyNy9WbzFIVmpiL1NyVmd3YlRxDQovMTZnZ3c4QUFBRnBqNnpFZ1FBQUJBTUFSakJFQWlBZmI0R0E1cmk0R29kamJvZGdhK2R5dzB0TzFjZXlqcDEzDQo4WlFDZjkyRVR3SWdYRWdMc0ZncFhVb3dvNWtidG5XMVVqaWh0U2lnQXY2aVkrbVdydHNVbnE0QWRRQkVsR1V1DQpzTzdPcjhSQUI5aW8vaWpBMnVhQ3Z0akxNYlUvMHpPV3RiYUJxQUFBQVdtUHJNTFZBQUFFQXdCR01FUUNJQXd1DQoxRDAwOVlrR2hkTkVjeVMrY3hWNkNJcHZEOVlYVUc2elplcHRrQytxQWlBRURMK2paNC9JYmxrdkV3U3E0K2NlDQpLVVVpUXJnTmwrUlBWWG1OWVVIQmpUQU5CZ2txaGtpRzl3MEJBUXNGQUFPQ0FRRUFYenlUdTR3emgxUlc5N28xDQpXYVY0K3BDeEZ4dE82Wm1QVG9Yd05NeHJFcVBKRDlIVWNnZmdKMzZYejZVVkdPMWV6K0orQUQzZW0rRGVST21EDQpualJzNms3VFkzYnNJSG5tdCt5b2FISmRiS0YxYzMwMmtxanJaeUxKNmdEVmQ3MFdERlovdkpvbUpaYXRocHJ3DQpxSzNuRjN5Z0RDRkdjNHNXeTBaTEVMUmQ3cFVzOEZNVldNMmo0UWhzODNzNjlpRTlLMkFJeTB0L01SbHM2eUlODQpDcFhYUmpFajVGU3pIanVhaHNWMEthYlRHS2wvTDVMYTBCMzZ4R3RoanQ1VysxVVc2U0NQNHlHYmt6RTR5enFCDQo4NmFNaDBLRGhmWUR5RnRrS3RWVUF5ZU1EVW5sT2JxckMzRnVNUlhIYTdySGdES0F5UFYrSHc4Z3BaK0YrU3BQDQpieWxzQ2c9PQ0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQ==";
        String filePath = "F:\\javatest\\test1.key";
        stirng2File(string, filePath);

    }

    public static void stirng2File(String base64Code, String targetPath) {
        System.out.println("20个字符" + base64Code.substring(0, Math.min(20,base64Code.length())));
        System.out.println("BASE64转译String:" + base64Code.length());
        byte[] buffer;
        FileOutputStream out = null;
        FileOutputStream out2 = null;
        try {
            Base64 base64 = new Base64();
            //解码
            buffer = base64.decode(base64Code);
            //buffer = new BASE64Decoder().decodeBuffer(base64Code);
            System.out.println("BASE64转译byte:" + buffer.length);
            //System.out.println("数据为"+temp);
            //System.out.println("buffer长度"+buffer.length);
            out = new FileOutputStream(targetPath);
//            out2 = new FileOutputStream("D:\\test\\1.txt");
            out.write(buffer);
//            out2.write(buffer);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } finally {
            if (out != null) {
                try {
                    out.close();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
            if (out2 != null) {
                try {
                    out2.close();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }

        }

    }
}

string转换文件后打开检查没问题:

 

 

 

3、将文件转换后的string添加到db

数据表结构:id,ssl_string,date_range

 

建表 导入:

CREATE TABLE SSLSTRING(ID INT,SSL_STRING TEXT,DATE_RANGE CHAR(50));

 

 完成!

 

posted @ 2022-02-23 12:08  abm  阅读(246)  评论(0编辑  收藏  举报