正则读写文件匹配

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class BrasBD {

	public static void writeSQLIntoFile(BufferedWriter bw,String ipAddr){
		System.out.println(ipAddr);
			try {
				bw.write(ipAddr);
				bw.newLine();
			} catch (IOException e) {
				e.printStackTrace();
			}
	}
	
public static List<String[]> getBrasIP(String path) {
		
        FileInputStream fis;
        BufferedReader br;
        InputStreamReader isr;
        String line="";
        List<String[]> l=new ArrayList<String[]>();
        
		try {
			fis = new FileInputStream(path);
			isr=new InputStreamReader(fis,"GBK");
			br = new BufferedReader(isr);
			
			//循环读取每一行
			while ((line=br.readLine())!=null) {
				line=line.trim();
				//正则表达式   section 1 110.85.137.1 110.85.137.254
				Pattern p = Pattern.compile("(section)\\s+(\\d)\\s+(\\d+\\.\\d+\\.\\d+\\.\\d+)\\s+(\\d+\\.\\d+\\.\\d+\\.\\d+)"); 
				// 操作的字符串 
				Matcher m = p.matcher(line); 
				
				//根据正则表达式查找
				while (m.find()) { 
					System.out.println(m.group(1)+"-------"+m.group(2)+"-------"+m.group(3)+"-------"+m.group(4));
					l.add(new String[]{m.group(3),m.group(4)});
			   }  
			}
			 	
	        br.close();
	        isr.close();
	        fis.close();
			
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
//		System.out.println(l.size());
//		
//		for (String[] strings : l) {
//			System.out.println(strings[0]+"   "+strings[1]);
//		}
		
		return l;
    }

public static  List<String> buildSql(List<String[]> l,String BrasIP){
	List<String> sqlList=new ArrayList<String>();
	String s="";
	String s1="insert into T_SDX_INFO values(" ;
	String s2="110085181002,110085181254" ;
//	String s3=",'218.5.204.119','0596',990600,2,'sdxPort=2000,secret=testing123',0);";
	String s3=",'" +BrasIP+
			"',0);";
	
	for (String[] strings : l) {
		String B="";
		String E="";
		
		//========开始=======================
		String[] b=strings[0].split("\\.");
		for (int i=0;i<4;i++) {
			if(b[i].length()==1)
				b[i]="00"+b[i];
			if(b[i].length()==2)
				b[i]="0"+b[i];
			
			B=B+b[i];
		}
		//=========结束======================
		String[] e=strings[1].split("\\.");
		
		for (int i=0;i<4;i++) {
			if(e[i].length()==1)
				e[i]="00"+e[i];
			if(e[i].length()==2)
				e[i]="0"+e[i];
			
			E=E+e[i];
		}
		
		s2=B+","+E;
		s=s1+s2+s3;
		System.out.println(s);
		sqlList.add(s);
		
	}
	
	return sqlList;
}

public static void main(String[] args) throws IOException {

		List<String[]> l=getBrasIP("C:\\Users\\hugsh\\Desktop\\BrasIP-113.txt");
		
		List<String> sqlList=buildSql(l,"218.5.204.113");
		
		
		BufferedWriter bw=new BufferedWriter(
				new OutputStreamWriter(
						new FileOutputStream("C:\\Users\\hugsh\\Desktop\\BrasIP-113.sql")));
		for (String string : sqlList) {
			writeSQLIntoFile(bw,string);
		}
		bw.flush();
		bw.close();
		
	}

}

相关文章

jquery.validate使用攻略(表单校验) 目录 jquery.validate...
/\s+/g和/\s/g的区别 正则表达式/\s+/g...
自整理几个jquery.Validate验证正则: 1. 只能输入数字和字母...
this.optional(element)的用法 this.optional(element)是jqu...
jQuery.validate 表单动态验证 实际上jQuery.validate提供了...
自定义验证之这能输入数字(包括小数 负数 ) &lt;script ...