加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

关于如何将文件内容提取(正则表达式)

发布时间:2020-12-14 01:53:06 所属栏目:百科 来源:网络整理
导读:test.properties: region_data UA:444 PPA:444; comparison_data UA:333 PPA:888; 文件内容类: public class DataForm { private String destType; private String dataBaseRegion; private String InstanceId; DataForm(String destType,String dataBaseRe

test.properties:


region_data UA:444 PPA:444;
comparison_data UA:333 PPA:888;

文件内容类:



public class DataForm {
private String destType;
private String dataBaseRegion;
private String InstanceId;



DataForm(String destType,String dataBaseRegion,String InstanceId){
this.destType = destType;
this.dataBaseRegion = dataBaseRegion;
this.InstanceId = InstanceId;
}

public String getdestType() {
return destType;
}


public void setdestType(String dataType) {
this.destType = dataType;
}


public String getDataBaseRegion() {
return dataBaseRegion;
}




public void setDataBaseRegion(String dataBaseRegion) {
this.dataBaseRegion = dataBaseRegion;
}




public String getInstanceId() {
return InstanceId;
}




public void setInstanceId(String instanceId) {
InstanceId = instanceId;
}




public static void main(String[] args) {
// TODO Auto-generated method stub


}


}

操作类:

import java.io.BufferedReader;

import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.List; import java.util.regex.Pattern; /** * 注意在test.properties文件中要按照格式进行填写 * example : 最后都要以;结束。 * @author linyuan * */ public class FileTest{ private static String regexForRegion = ";"; private static String regexFordata = " "; private static String regexForDetails = ":"; private static String regionString; private static String comparisonString; public static String[] getRegexForRegion(StringBuffer in) { Pattern p = Pattern.compile(regexForRegion); String[] region = p.split(in); return region; } public static String[] getRegexFordata(String in) { Pattern p = Pattern.compile(regexFordata); String[] region = p.split(in); return region; } public static String[] getregexForDetails(String in) { Pattern p = Pattern.compile(regexForDetails); String[] region = p.split(in); return region; } public static void main(String[] args) throws IOException { /** * 读取文件内容 */ List<DataForm> dataSource = new ArrayList<DataForm>(); StringBuffer buffer = new StringBuffer(); BufferedReader reader = null; InputStream is = null; try{ is = new FileInputStream("test.properties"); String line; // 用来保存每行读取的内容 reader = new BufferedReader(new InputStreamReader(is)); line = reader.readLine(); // 读取第一行 while (line != null) { // 如果 line 为空说明读完了 buffer.append(line); // 将读到的内容添加到 buffer 中 buffer.append("n"); // 添加换行符 line = reader.readLine(); // 读取下一行 } /** * 开始进行文件文件内容匹配 */ String[] region = getRegexForRegion(buffer);//获得数据源和参考数据库字符串 String[] regionDataPair; String[] comparisonDataPair; Pattern p = Pattern.compile(regexForRegion); regionString = region[0].substring("region_data ".length(),region[0].length()); comparisonString = region[1].replaceAll("comparison_data ",""); regionDataPair = getRegexFordata(regionString); comparisonDataPair = getRegexFordata(comparisonString);//获得到数据对 for(int i = 0; i < regionDataPair.length;i++) { String[] data = getregexForDetails(regionDataPair[i]); dataSource.add(new DataForm("region",data[0],data[1])); } for(int i = 0; i < comparisonDataPair.length;i++) { String[] data = getregexForDetails(comparisonDataPair[i]); dataSource.add(new DataForm("comparison",data[1])); } }catch(Exception e) { e.printStackTrace(); } finally{ reader.close(); is.close(); } for(int j = 0; j < dataSource.size();j++) { System.out.println("目标是"+dataSource.get(j).getdestType()+",数据库类型是"+dataSource.get(j).getDataBaseRegion()+",实例代号是"+dataSource.get(j).getInstanceId()+"n"); } } }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读