最近有较多提取文档内容,然后拼接成sql之类的,但是纯粹的复制粘贴又太傻,就写了一个脚本,自动读取文件内容(word文档可能需要复制成txt文本),然后拼接sql,最后写入到指定文件中,试了下还是蛮好用的。
不多说,直接上代码。
1 import java.io.BufferedReader; 2 import java.io.FileInputStream; 3 import java.io.FileNotFoundException; 4 import java.io.FileWriter; 5 import java.io.IOException; 6 import java.io.InputStreamReader; 7 import java.util.ArrayList; 8 import java.util.List; 9 10 import org.apache.commons.lang.StringUtils; 11 12 public class Reader { 13 14 public static void main(String[] args) { 15 FileInputStream fis = null; 16 InputStreamReader isr = null; 17 BufferedReader br = null; 18 FileWriter fw = null; 19 try { 20 String encoding="UTF-8"; 21 String sql = ""; 22 List<String> list = new ArrayList<String>(); 23 //文件绝对路径 24 fis = new FileInputStream("D:\\TestStudy\\1.txt"); 25 isr = new InputStreamReader(fis, encoding); 26 br = new BufferedReader(isr); 27 //将文件中的内容读到List中 28 for (int i = 0 ; i <= 429 ; i ++) { 29 list.add(br.readLine()); 30 } 31 //遍历List,提取需要的内容,拼接字符串 32 for (int i = 0 ; i < list.size() ; i++) { 33 if (StringUtils.contains(list.get(i), "交强")) { 34 sql += "-- 备份1条记录\n" + "SELECT * FROM pics_url a WHERE a.urlname = '" 35 + list.get(i-1) + "商业';\n" + "-- 更新1条记录\n" + "UPDATE pics_url a SET a.url='" + list.get(i+1) 36 + "' WHERE a.urlname='" + list.get(i-1) + "商业';\n" + "-- 备份1条记录\n" + "SELECT * FROM pics_url a WHERE a.urlname = '" 37 + list.get(i-1) + "交强';\n" + "-- 更新1条记录\n" + "UPDATE pics_url a SET a.url='" + list.get(i+3) 38 + "' WHERE a.urlname='" + list.get(i-1) + "交强';\n\n"; 39 } 40 } 41 42 //将拼接得到的内容写入文件中 43 fw = new FileWriter("D:/TestStudy/1.sql"); 44 fw.write(sql); 45 46 System.out.println(sql); 47 48 } catch (FileNotFoundException e) { 49 System.out.println("找不到指定文件"); 50 } catch (IOException e) { 51 System.out.println("读取文件失败"); 52 } finally { 53 try { 54 br.close(); 55 isr.close(); 56 fis.close(); 57 fw.flush(); 58 fw.close(); 59 } catch (IOException e) { 60 e.printStackTrace(); 61 } 62 } 63 } 64 }
效果展示:
原文件:
转换后: