import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.InputStreamReader;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.Random;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.lang.String;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class Test extends JFrame {
private static final long serialVersionUID = -3987101381245927811L;
JPanel p1 = new JPanel();
JPanel p2 = new JPanel();
JLabel l1 = new JLabel("订购ID");
JLabel l2 = new JLabel("站点名称");
JLabel l3 = new JLabel("订购人员");
static JTextField f1 = new JTextField();
static JTextField f2 = new JTextField();
static JTextField f3 = new JTextField();
JButton b1 = new JButton("执行");
public Test() {
this.setLayout(new BorderLayout());
p1.setLayout(new GridLayout(3, 2));
p1.add(l1);
p1.add(f1);
p1.add(l2);
p1.add(f2);
p1.add(l3);
p1.add(f3);
final String x1=new Date().getTime()+""+(int)(Math.random()* 999999);//生成随机数替换字符串
final String x2=new Date().getTime()+""+(int)(Math.random()* 999999);
this.add(p1, BorderLayout.NORTH);
p2.add(b1, BorderLayout.CENTER);
this.add(p2, BorderLayout.CENTER);
b1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
// 两个数组分别对应要替换的内容
String[] regExArray = {"1343264363678mknN7LA8wk7KNFJetOsyytj0K", "线上订购ID测试", "name","1380511569663114136","1380511569663114146"};
String[] valArray ={f1.getText(),f2.getText(),f3.getText(),x1,x2};
File file1 = new File("d:/np003data.sql");//源文件1
File file2 = new File("d:/np073data.sql");//源文件2
exec1(regExArray,valArray,file1);
exec2(regExArray,valArray,file2);
}
});
this.setSize(240, 150);
this.setVisible(true);
}
public void exec1(String[] regExArray,String[] valArray, File file1 ){
String rtnFile1 = "d:/OK/np003data.sql";
try {
String encoding1 = "UTF8"; // 字符编码(可解决中文乱码问题 )
if (file1.isFile() && file1.exists()) {
InputStreamReader read1 = new InputStreamReader(
new FileInputStream(file1), encoding1);
BufferedReader bufferedReader1 = new BufferedReader(read1);
String lineTXT1 = null;
BufferedWriter bw1 = new BufferedWriter(new FileWriter(rtnFile1));
while ((lineTXT1 = bufferedReader1.readLine()) != null) {
String str1 = lineTXT1 ;
for(int i = 0;i<5;i++){
Pattern p1 = Pattern.compile(regExArray[i]);
Matcher m1 = p1.matcher(str1);
str1 = m1.replaceAll(valArray[i].trim());
}
bw1.write(str1);
bw1.newLine();
}
bw1.flush();
read1.close();
if(bw1 != null) bw1.close();
JOptionPane.showMessageDialog(null, "成功更新 !");
} else {
JOptionPane.showMessageDialog(null,"找不到指定的文件!");
}
} catch (Exception e1) {
JOptionPane.showMessageDialog(null,"读取文件内容操作出错");
e1.printStackTrace();
}
}
public void exec2(String[] regExArray,String[] valArray, File file2 ){
String rtnFile2 = "d:/OK/np073data.sql";
try {
String encoding2 = "UTF8"; // 字符编码(可解决中文乱码问题 )
if (file2.isFile() && file2.exists()) {
InputStreamReader read2 = new InputStreamReader(
new FileInputStream(file2), encoding2);
BufferedReader bufferedReader2 = new BufferedReader(read2);
String lineTXT2 = null;
BufferedWriter bw2 = new BufferedWriter(new FileWriter(rtnFile2));
while ((lineTXT2 = bufferedReader2.readLine()) != null) {
String str2 = lineTXT2 ;
for(int i = 0;i<5;i++){
Pattern p2 = Pattern.compile(regExArray[i]);
Matcher m2 = p2.matcher(str2);
str2 = m2.replaceAll(valArray[i].trim());
}
bw2.write(str2);
bw2.newLine();
}
bw2.flush();
read2.close();
if(bw2 != null) bw2.close();
JOptionPane.showMessageDialog(null, "成功更新 !");
} else {
JOptionPane.showMessageDialog(null,"找不到指定的文件!");
}
} catch (Exception e2) {
JOptionPane.showMessageDialog(null,"读取文件内容操作出错");
e2.printStackTrace();
}
}
public static void main(String[] args) {
new Test();
}
}
java读取文档替换指定字符串后生成新的文档
最新推荐文章于 2023-11-21 17:17:49 发布