我想使用java解析wmi输出下面的hashmap作为键值对。请给我建议.. 我的WMI输出包含2行,包含多列,第一行是标题,第二行包含数据。我想要正则表达式或任何方法将标题与相应的数据分开作为hashmap的键值。
我不知道如何继续......
Caption Description IdentifyingNumber Name
Computer System Product Computer System Product HP xw4600 Workstation
解析输出应该像......
Caption =计算机系统产品
描述=计算机系统产品
IdentifyingNumber =
名称= HP xw4600工作站
答案 0 :(得分:0)
如果您的文件格式始终相同,则可以轻松使用解析器:
FileInputStream fis = new FileInputStream(filename);
InputStreamReader isr = new InputStreamReader(fis);
Reader in = new BufferedReader(isr);
String[] array = new String[2];
for(int i = 0; i < 2; i++)
{
((BufferedReader)in).readLine();
}
for(int i = 0; i < array.length; i++)
{
array[i] = ((BufferedReader)in).readLine();
if(array[i] == null)
{
array[i] = ""; //$NON-NLS-1$
}
}
in.close();
String[] headers = array[0].split(Pattern.quote("\t")); //$NON-NLS-1$
String[] values = array[1].split(Pattern.quote("\t")); //$NON-NLS-1$
然后运行两者并填充hashmap
答案 1 :(得分:0)
我将wmi输出格式化为列表,现在很容易合成输出。