对文件内容就行修改-java代码

在实际的生产中,会遇到数据库版本的不同,sql语句的语法会出现改变,

我在这次的金仓数据库中就遇到了,V8版本的建表语句跟V7版本的不一样,所以需要对里面内容进行修改

 从图中我们可以看到到,这个是金仓数据库v8版本导出的建表语句,这个语句在v7版本是不能运行的

我们需要做的就是

在这分享一小段java代码,本人是个菜鸟,大家看到写得不好也请见谅!

首先在idea里面创建一个maven项目,具体的创建步骤就不多说了

package com.gong;

import java.io.*;
import java.util.ArrayList;
import java.util.List;

public class SqlDeal {
    //按行读取文件内容到集合
    public static List<String> readFlie(File file){
        List<String> input = new ArrayList<String>();
        try{
            BufferedReader br = new BufferedReader(new FileReader(file));//构造一个BufferedReader类来读取文件
            String s = null;
            while((s = br.readLine())!=null){//使用readLine方法,一次读一行
               // System.out.println(s);
                input.add(s);
            }
            br.close();
        }catch(Exception e){
            e.printStackTrace();
        }
        return input;
    }

    //处理内容
    public static List<String> dealdata(List<String> inputdata){
        List<String> outputdata = new ArrayList<String>();
        for(int i=0;i<inputdata.size();i++){
          String element=inputdata.get(i);
          String outElement=null;
          if(element.contains("char")){
            outElement = element.replaceAll("char", "");
            outputdata.add(outElement);
          }else {
            outputdata.add(element);
          }
        }
        for(int j=0;j<outputdata.size();j++){
           String temp = outputdata.get(j);
           System.out.println(temp);
        }
        return outputdata;
    }

    //把内容写入文本文件中
    public static void writercontent(List<String> output,String filepath) throws IOException {
        File file = new File(filepath);
        if(!file.exists()){
            file.createNewFile();
        }
        FileWriter fileWriter = new FileWriter(file.getAbsoluteFile());
        BufferedWriter bw = new BufferedWriter(fileWriter);
        for(int i=0;i<output.size();i++){
            bw.write(output.get(i).toString());
            bw.newLine();
        }
        bw.close();
    }

    public static void main(String[] args) throws IOException {
        //输入文件
        File infile = new File("D:\MyCode\sqldeal\inputdata\input.sql");
        List<String> inputdata=new ArrayList<String>();
        inputdata=readFlie(infile);//读取输入的文件内容
        List<String> onputdata=new ArrayList<String>();
        onputdata=dealdata(inputdata);//对内容进行处理
        //输出文件的路径
        String outputpath="D:\MyCode\sqldeal\outputdata\output.sql";
        writercontent(onputdata,outputpath);//把处理后的内容写入到文件
    }

}

运行代码,查看输出路径的文件内容

成功!!

原文地址:https://www.cnblogs.com/braveym/p/13700970.html