【问题标题】:How to retrieve a specified data from a File?如何从文件中检索指定的数据?
【发布时间】:2011-09-11 13:38:58
【问题描述】:

我将此数据存储在 .dat 文件中:

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

每一行都有不同的 date,y,value1 和 value2 值。 我想检索每一行的变量 value1。如何浏览文件并提取所有行的这个变量。我在我的项目中遇到了这个问题。感谢您的帮助。 编辑:示例: 我在文件中存储了这 3 个数据:

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

在这种情况下,我想检索 20dt、60dt 和 50dt。

【问题讨论】:

  • @aioobe:请看我编辑的帖子。
  • 我的解决方案应该没问题。

标签: android java-io


【解决方案1】:

这里有一个使用正则表达式的建议:

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);

【讨论】:

  • 好的,结果将被“分组”。如果我想将所有检索到的值存储在该值的String[] 中,我该怎么办:String[] verlabels = new String[] {}
  • 创建一个ArrayList<String> list,并在每次迭代中执行list.add(dtVal)
  • 还有一个问题:如何检索日期? line.split(?) ?期待您的回复。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-01-20
  • 1970-01-01
  • 2018-08-16
相关资源
最近更新 更多