关于如何将文件内容提取(正则表达式)
test.properties:
region_data UA:444 PPA:444; 文件内容类:
操作类: 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"); } } }(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- ruby-on-rails – 将行为的标签数量限制为可标记的
- ruby-on-rails – Ruby on Rails 3.2.13 – Brakeman – 会
- c – libpng png_set_add_alpha | png_set_filler错误:顺序
- Flex错误:1004: namespace 要么找不到,要么不是编译时常数
- React中state和props
- 命令行 – 将Flash(SWF)帧渲染为图像(PDF,PNG,JPG)
- sql server 2008 r2 express 精简版与企业版的区别
- C语言可变参数函数
- 与依赖关系“com.android.support:support-annotations”冲
- c# – 如何从List中删除特定字段