问题描述:
做了一个读取文件内容的功能,读取的代码在下方:
读取文件内容方法:
public static List getFileList(){
File file = new File("F:/public.txt");
BufferedReader reader = null;
String lines = null;
int line = 1;
List list = new ArrayList();
try {
reader = new BufferedReader(new InputStreamReader(new FileInputStream(file),"GBK"));
//一行一行的读取OID文件内容
while((lines = reader.readLine()) != null){
// System.out.println(lines);
Map<String, String> lineMap = new HashMap<String, String>();
if(lines!=null && lines.length()-lines.indexOf("=")>1){
String oid = lines.substring(0, lines.indexOf("=")-1);
String val = lines.substring(lines.indexOf("=")+2, lines.length());
lineMap.put(oid, val);
}
list.add(lineMap);
line++;
// if(line%200==0){
// try {
// TimeUnit.SECONDS.sleep(2);
// } catch (InterruptedException e) {
// e.printStackTrace();
// }
// }
}
reader.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return list;
}
在上面读取以后,通过比较读取回来的map的key和我的入参map的value进行比较,然后放到一个新的集合里面。
将读取出来的内容进行比较后入库:
public static List<Object> getDeviceByOid(String ip,String tasknum,String sbbh,
String manufacturer, String version, String os, String community, Map<String, String> returnMap){
List<Object> devList = new ArrayList<Object>();
List<Object> list = ReadFile.getFileList();
for (Object object : list) {
Map<String, String> valMap = new HashMap<String, String>();
valMap.put("TASKNUMBER", tasknum);
valMap.put("DEVICEID", sbbh);
//厂家编号
valMap.put("GQCJBH", manufacturer);
//型号
valMap.put("GQJHJSBXH", version);
//ip
valMap.put("GQIP", ip);
Map<String, String> map = (Map<String, String>)object;
String key = map.keySet().toString();
String val = map.values().toString();
if(key != null && val != null && key.contains(" ") == false){
for(Map.Entry<String, String> entry : returnMap.entrySet()){
String hkey = entry.getKey();
String hval = entry.getValue();
if(key.contains(hval)){
valMap.put(hkey, val);
}
}
if(valMap!=null){
devList.add(valMap);
}
}
}
return devList;
}
目前存在问题:
执行效率太慢,请大神指教!!!