二进制文件读取输出text进行比对

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_39556804/article/details/79855689
package com.demodashi.dbcompare;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.HashMap;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * @Author: ljf
 * @Date:Create in 9:36 2018/3/9
 * @Description:
 */
public class DbCompare {
    private static final Logger LOGGER = LoggerFactory.getLogger(NewDbCompare.class);

    public static void main(String[] args) throws Exception {
        String content;
        //new
        String newUrl = "jdbc:sqlite://C:/Users/Administrator/Desktop/data_new.db";
        String newFilePath = "C:/Users/Administrator/Desktop/new.txt";
        content = getContent(newUrl);
        writeFile(content, newFilePath);
        //old
        String oldUrl = "jdbc:sqlite://C:/Users/Administrator/Desktop/data_old.db";
        String oldFilePt = "C:/Users/Administrator/Desktop/old.txt";
        content = getContent(oldUrl);
        writeFile(content, oldFilePt);
    }

    private static String getContent(String url) throws Exception {
        Class.forName("org.sqlite.JDBC");
        Connection connection = null;
        Statement statement;

        String menuSql = "select * from system_menus";
        String pageSql = "select * from system_pages";
        ResultSet resultSet = null;
        StringBuilder sb = new StringBuilder();

        try {
            connection = DriverManager.getConnection(url);
            statement = connection.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY);
            statement.setQueryTimeout(30);

            ArrayList<Integer> menuList = new ArrayList<>();
            HashMap<Integer, String> menuMap = new HashMap<>();
            resultSet = statement.executeQuery(menuSql);
            LOGGER.info(resultSet.toString().getBytes().length + "set size");

            while (resultSet.next()) {
                menuList.add(resultSet.getInt("id"));
                String menu = String.valueOf(resultSet.getInt("id")) + " " + resultSet.getString("address") + " " + resultSet.getString("name") + " "
                        + resultSet.getString("owner") + " " + resultSet.getInt("pid") + " " + resultSet.getInt("privilege") + " " + resultSet.getInt("log")
                        + " " + resultSet.getInt("sort") + " " + resultSet.getInt("type") + " " + resultSet.getString("proxy");
                menuMap.put(resultSet.getInt("id"), menu);
            }
            resultSet.close();

            resultSet = statement.executeQuery(pageSql);
            ArrayList<String> pageList = new ArrayList<>();
            HashMap<String, Object> pageMap = new HashMap<>();
            while (resultSet.next()) {
                pageList.add(resultSet.getString("id"));
                String page = resultSet.getString("id") + " " + resultSet.getString("name") + " " + resultSet.getInt("parent") + " "
                        + resultSet.getInt("menuid") + " " + resultSet.getString("configs");
                pageMap.put(resultSet.getString("id"), page);
            }

            for (Integer id : menuList) {
                sb.append(menuMap.get(id)).append(",");
            }
            for (String id : pageList) {
                sb.append(pageMap.get(id)).append(",");
            }

        } catch (SQLException e) {
            LOGGER.error("查询出错" + e.toString(), e);
        } finally {
            if (connection != null) {
                connection.close();
            }

            if (resultSet != null) {
                resultSet.close();
            }
        }
        LOGGER.info(sb.toString().getBytes().length + "sb size");
        return sb.toString();
    }

    private static void writeFile(String content, String filePath) {
        FileWriter fw;
        BufferedWriter bw = null;
        try {
            File file = new File(filePath);
            fw = new FileWriter(file);
            bw = new BufferedWriter(fw);

            if (!file.exists()) {
                file.createNewFile();
            }

            for (String s : content.toString().split(",")) {
                bw.write(s);
                bw.newLine();
            }
            bw.flush();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                bw.close();
                System.out.println("输出完毕 !");
            } catch (IOException e) {
                LOGGER.info(e.toString());
            }
        }
    }

}

猜你喜欢

转载自blog.csdn.net/weixin_39556804/article/details/79855689