java读取文档替换指定字符串后生成新的文档

来源:互联网 发布:七日杀石斧数据修改 编辑:程序博客网 时间:2024/05/20 23:59
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();}}

0 0
原创粉丝点击