用java解析平面文件

时间:2012-11-27 09:06:34

标签: java parsing wmi

我想使用java解析wmi输出下面的hashmap作为键值对。请给我建议.. 我的WMI输出包含2行,包含多列,第一行是标题,第二行包含数据。我想要正则表达式或任何方法将标题与相应的数据分开作为hashmap的键值。

我不知道如何继续......

Caption                  Description              IdentifyingNumber  Name                   

Computer System Product  Computer System Product                     HP xw4600 Workstation                   

解析输出应该像......

键=值

Caption =计算机系统产品

描述=计算机系统产品

IdentifyingNumber =

名称= HP xw4600工作站

2 个答案:

答案 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输出格式化为列表,现在很容易合成输出。