zoukankan      html  css  js  c++  java
  • 对文件内容就行修改-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);//把处理后的内容写入到文件
        }
    
    }

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

    成功!!

  • 相关阅读:
    JVM系列(三)垃圾回收
    JVM系列(二)各区域的OOM
    JVM系列(一)内存模型
    获取IP、mac等信息
    memcached(七)--常用指令抓包分析
    memcached(五)--源码分析,启动
    apt安装mysql + 简易配置
    memcached(六)--spyMemcached的get操作
    解决mysql获取不到连接的问题
    tcp一些要点
  • 原文地址:https://www.cnblogs.com/braveym/p/13700970.html
Copyright © 2011-2022 走看看