java大文件内容匹配_Java在一个文件中匹配字符串

import java.io.*;

import java.util.regex.*;

import java.util.*;

/**

* 输入一个MAC地址,然后查找文件,将该MAC地址对应的企业名称找到并解析出来。

* 文件中还有企业的注册的详细地址

* @author ZYK

*

*/

public class SearchFile {

public static void main(String arg[]) {

String mac = "74-AD-B7-7F-CD-DE";

//String mac = "c4-6a-b7-e9-ba-00";

//String mac = "74-51-BA-5E-99-DB";

macSearch(mac.toUpperCase());

}

public static void macSearch(String mac) {

List strList = new ArrayList();// 定义一个List存储读取的文本内容

int flags = 0;// 定义一个flag存储keyword出现的行

// 从给定的MAC地址中取出代表企业的关键部分;

String keyword = mac.substring(0, 8);

Pattern p = Pattern.compile(keyword);// 调用Pattern的compile方法编译要匹配的正则

Matcher m;

int i = 0;

try {

//MAC地址与企业名称对照文件

Reader re = new FileReader(new File(

"F:\\EcpliseForJAVA\\Workspace0\\SNMP\\res\\oui.txt"));

BufferedReader bre = new BufferedReader(re);

while (bre.ready()) {

String str = bre.readLine();

strList.add(str);

m = p.matcher(str);

if (m.find())// 查找正则匹配的子串是否存在

{

flags = i;// 记录匹配的行

break;

}

i++;

}

//如果找到,输出厂商名称;如果没有查找到,输出“私营”,表示该MAC地址为录入。

if (flags != 0) {

String result = strList.get(flags).substring(20);

System.out.println("MAC:" + mac + "属于: " + result);

}

else {

System.out.println("私营");

}

} catch (Exception e) {

System.out.println(e.toString());

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值