對檔案內容就行修改-java程式碼
阿新 • • 發佈:2020-09-20
在實際的生產中,會遇到資料庫版本的不同,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);//把處理後的內容寫入到檔案
}
}
執行程式碼,檢視輸出路徑的檔案內容
成功!!