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

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();
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值