去除oracle中的sql脚本中含有"records committed..."和"commit;"的行

最近实施部的同事说,最近几次在实施的时候,发现开发过程中整理的脚本有很多“records committed...”和“commit;” 严重影响了执行脚本速度。让我帮其去除脚本里面的这些提示和提交命令,遂就用JAVA的文件操作帮其做了下处理。

去除方式为:

1、首先找到发布脚本所在的文件夹,读取里面所有的文件

2、遍历文件数组,找到要进行处理的文件。

3、用指定的编码字符集对文件进行解码,然后循环读取每一行并判断是否包含要去除的字段,如果有则跳过,否则把该行写入一个写缓冲器中,循环结束之后把写缓冲器写入指定文件夹。

代码如下:

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.UnsupportedEncodingException;


public class DeleteStrDemo {

	private static int count;
	public static void main(String[] args) throws IOException {
		File dir=new File("E:\\DBSCript");
		deleteStrPro(dir);
		System.out.println("去除成功!");
		System.out.println("共去除"+count+"行");
	}
	private static void deleteStrPro(File dir) throws IOException {
		if(dir.isDirectory()){//判断是否是文件夹
			File[] files=dir.listFiles();
			if(null!=files){
				for(File file:files){
					if(!file.isDirectory()){
						removeStrCore(file);//核心处理方法
					}
				}
			}
		}
	}
	/**
	 * 去除指定行的核心方法
	 * @param file
	 */
	private static void removeStrCore(File file)
	{
		BufferedReader bufferReader=null;//读缓冲器
		BufferedWriter bufferWriter=null;//写缓冲器
		try{
			OutputStreamWriter out=new OutputStreamWriter(new FileOutputStream("E:\\DBSCript\\process"+File.separator+file.getName()),"UTF-8");//指定写编码
			InputStreamReader   in=new InputStreamReader( new  FileInputStream(file),"GBK");//指定读编码
			bufferReader=new BufferedReader(in);//读缓冲器
			bufferWriter=new BufferedWriter(out);//写缓冲器
			while(bufferReader.ready()){
				String line=bufferReader.readLine();
				if(line.contains("records committed...")||line.equals("commit;")){
					count++;
					continue;
				}
				bufferWriter.write(line);
				bufferWriter.newLine();
				bufferWriter.flush();//刷新缓冲区
			}
			bufferReader.close();//关闭流
			bufferWriter.close();
		}catch(IOException e){			
		}finally{
			try{
			if(null!=bufferReader){
				bufferReader.close();
			}
		   if(null!=bufferWriter){
			   bufferWriter.close();
		   }
			}catch(IOException e){}
		}
	}
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值