这里主要用到了java的文件读写,和字符串替换功能,
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class main {
//将source中包含的from替换为to,返回替换后的字符串
public static String replace(String from, String to, String source) {
if (source == null || from == null || to == null)
return null;
StringBuffer bf = new StringBuffer("");
int index = -1;
while ((index = source.indexOf(from)) != -1) {
bf.append(source.substring(0, index) + to);
source = source.substring(index + from.length());
index = source.indexOf(from);
}
bf.append(source);
return bf.toString();
}
/**
* @param args
*/
public static void main(String[] args) {
try {
//br用来读文件
FileInputStream fis = new FileInputStream("E:\\SCP_NODE.sql");
InputStreamReader isr = new InputStreamReader(fis, "UTF-8");
BufferedReader br = new BufferedReader(isr);
//bw用来写文件
FileOutputStream fos=new FileOutputStream("E:\\test.sql");
OutputStreamWriter osw=new OutputStreamWriter(fos);
BufferedWriter bw=new BufferedWriter(osw);
//全部打算替换的字符
String from[]=new String[]{"NUMBER","\"","PSCP.","VARCHAR2","NOLOGGING","NOCOMPRESS","NOCACHE" ,"BYTE","COMMENT","DROP"};
//替换为如下这些字符串
String to[]=new String[]{"DECIMAL" ,"" ,"" ,"VARCHAR" ,"" ,"" ,"ENGINE=ndb DEFAULT CHARSET=utf8","" ,"--" ,"--" };
//没读一行就替换所有应该替换的,然后写到控制台一次,写入文件一次
String line;
while((line = br.readLine())!=null){
for(int i=0;i
line=replace(from[i],to[i],line);
System.out.println(line);
//在文件中添加换行添加
bw.write(line+"\r\n");
}
bw.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e){
e.printStackTrace();
}
}
}