2011-09-11 25 views
1

我在一家.dat文件中存储这些数据:如何从文件中检索指定的数据?

data = date + ": " + y + "L/100KM "+ " " + value1 + "dt "+ value2 + "KM\n"; 

每一行都有日期,Y,值1和值2的值不同。 我想检索每一行的变量value1。如何浏览文件并提取所有行的这个变量。我在我的项目中解决了这个问题。感谢您的帮助。 编辑:例: 我有存储在文件中这3个DATAS:

11/09: 5.8L/100KM 20dt 250KM 
12/09: 6.4L/100KM 60dt 600KM 
13/09: 7.5L/100KM 50dt 543KM 

在这种情况下,我想找回20dt,60dt和50dt。

+0

给我们几行例子。 – aioobe

+0

@aioobe:请参阅我编辑的帖子。 – androniennn

+0

我的解决方案应该没问题。 – aioobe

回答

2

下面是使用正则表达式一个建议:

String line = "12/09: 6.4L/100KM 60dt 600KM"; 

Pattern p = Pattern.compile("(\\d+)dt"); 
Matcher m = p.matcher(line); 

if (m.find()) 
    System.out.println(m.group(1)); // prints 60 

如果你有几行遍历,你会使用,例如一个new BufferedReader(new FileReader("youfile.dat"))并做类似

String line; 
while ((line = br.nextLine()) != null) { 
    Matcher m = p.matcher(line); 
    if (m.find()) 
     process(m.group(1)); 
} 

您也可以使用line.split(" ")并选择3:rd元素:

String line = "12/09: 6.4L/100KM 60dt 600KM"; 
String dtVal = line.split(" ")[2]; 

// Optional: Remove the "dt" part. 
dtVal = dtVal.substring(0, dtVal.length() - 2); 

System.out.println(dtVal); 
+0

好的,结果将被“分组”。如果我想将所有回溯值存储在该值的String []中,我该怎么办?String [] verlabels = new String [] {}' – androniennn

+1

创建'ArrayList list',并执行'list。在每次迭代中添加(dtVal)'。 – aioobe

+0

还有一个问题:如何检索日期? 'line.split(?)'?寻找你的回应。 – androniennn