java代码分割过大的sql文件

该程序读取指定的SQL文件,依据特定的分隔符(DROPTABLEIFEXISTS)将内容拆分成多个文件,每个文件名基于分隔行的数据生成,并以.sql为后缀。在处理过程中,确保文件存在,使用UTF-8编码读取,逐行处理并写入新文件,最后关闭输出流。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package com.xinju.iot.manage.api.device.consts;

import java.io.*;

public class testMain {



        public static String IN_FLIE = "C:\\物联网\\iot_base\\iot_base.sql";
        public static String OUT_FLIE_PATH = "C:\\物联网\\iot_base\\iot-fg\\";
        public static String splitValue = "DROP TABLE IF EXISTS";

        public static void main(String[] args) throws IOException {
            //读取被分割的文件
            File file = new File(IN_FLIE);
            if (!file.exists() || (!file.isFile())) {
                System.out.println("文件不存在");
            }
            //用字符流读取文件内容
            BufferedReader bufferedReader = new BufferedReader(
                    new InputStreamReader(new FileInputStream(file), "UTF-8"));
            String bufStrLine = null;
            Writer writer = null ;
            //一行一行读取
            while ((bufStrLine = bufferedReader.readLine()) != null) {
                //读到存在对应标识字符串
                if (bufStrLine.contains(splitValue)){
                    //不为空,则把上一个文件输出流关闭
                    if (writer != null){
                        writer.close();
                    }
                    //创建io输出流,通过分割改行数据获取文件名
                    String fileName = OUT_FLIE_PATH+bufStrLine.split("`")[1]+".sql";
                    writer = new FileWriter(fileName);
                    System.out.println("创建文件"+fileName);
                }
                //写一行数据到输出文件
                if (writer != null){
                    writer.write(bufStrLine+"\r\n");

                }
            }
            //关闭最后一个输出流
            if (writer != null){
                writer.close();
            }
            System.out.println("文件大小" + file.length());
        }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值