用java进行平面文件解析

用java进行平面文件解析,java,parsing,wmi,Java,Parsing,Wmi,我想使用java将下面的wmi输出解析为一个键值对,并将其转换为hashmap。请给我一些建议。。 我的WMI输出包含两行多列,第一行是标题,第二行包含数据。我希望使用正则表达式或任何方法将标题与相应的数据分离,作为hashmap的键值 我不知道如何继续 Caption Description IdentifyingNumber Name Computer System Product Com

我想使用java将下面的wmi输出解析为一个键值对,并将其转换为hashmap。请给我一些建议。。 我的WMI输出包含两行多列,第一行是标题,第二行包含数据。我希望使用正则表达式或任何方法将标题与相应的数据分离,作为hashmap的键值

我不知道如何继续

Caption                  Description              IdentifyingNumber  Name                   

Computer System Product  Computer System Product                     HP xw4600 Workstation                   
解析输出应该类似于

Key=Value 标题=计算机系统产品

Description=计算机系统产品

识别号=


Name=HP xw4600 Workstation

如果文件格式始终相同,则可以轻松使用解析器:

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$
FileInputStream fis=新的FileInputStream(文件名);
InputStreamReader isr=新的InputStreamReader(fis);
读取器in=新的缓冲读取器(isr);
字符串[]数组=新字符串[2];
对于(int i=0;i<2;i++)
{
((BufferedReader)in).readLine();
}
for(int i=0;i

然后运行和填充hashmap,我将wmi输出格式化为一个列表,现在很容易格式化输出。

我想使用java将下面的wmi输出解析为一个键值对。
很好,你为什么不这样做呢?你被错误缠住了吗?你的答案怎么了?那你为什么接受它呢?用户714965。。。另一个问题的答案很好,也适合那个问题。上一个问题中的格式与此问题不同。我们需要为此使用不同的正则表达式。你能为这个fomate提供一些正则表达式吗?@kumar不,但我认为你应该试着自己编写这个正则表达式。如果你有困难,问一个问题。这样你会从中得到更多,而不是让任何人写你所有的正则表达式。。。标题和值长度仅为1。调试时,您能看到这些字符串中使用的分隔符吗?当我尝试使用“\\s+”拆分时,标题部分工作正常。但给出奇怪结果的数据部分并不能得到你的答案。。。输出来自wmi。如何检查?如果使用我的代码,“headers”和“values”中的字符串对象使用哪些字符作为分隔符?