gpt4 book ai didi

java - 使用java解析文本文件,需要建议使用哪一个

转载 作者:太空宇宙 更新时间:2023-11-04 08:44:01 25 4
gpt4 key购买 nike

我可以使用 InputFileStream 和 Scanner 类成功读取文本文件。这很简单,但我需要做一些比这更复杂的事情。首先介绍一下我的项目的一些背景信息。我有一个带有传感器的设备,我正在使用记录器,它将每 10 秒将传感器的数据记录到一个文本文件中。每 10 秒就有一行新数据。所以我想要的是,当我读取文件时,将每个单独的传感器数据抓取到一个数组中。例如:速度 高度 纬度 经度

22 250 46.123245 122.539283

25 252 46.123422 122.534223

所以我需要将海拔数据 (250, 252) 抓取到数组 alt[] 中;等等 vel[]、lat[]、long[]...

然后文本文件的最后一行将有不同的信息,只是一行。它将包含日期、行驶距离、已用时间..

经过一番研究后,我遇到了 InputStream、Reader、StreamTokenizer 和 Scanner 类。我的问题是,您会为我的案例推荐哪一款?就我的情况来说,是否可以做我需要做的事情?它是否能够检查文件的最后一行是什么,以便它可以获取日期、距离等。谢谢!

最佳答案

读取器 + String.split()

String line;
String[] values;
BufferedReader reader = new BufferedReader(new FileReader(args[0]));
List<Integer> velocity = new ArrayList<Integer>();
List<Integer> altitude = new ArrayList<Integer>();
List<Float> latitude = new ArrayList<Float>();
List<Float> longitude = new ArrayList<Float>();

while (null != (line = reader.readLine())) {
values = line.split(" ");
if (4 == values.length) {
velocity.add(Integer.parseInt(values[0]));
altitude.add(Integer.parseInt(values[1]));
latitude.add(Float.parseFloat(values[2]));
longitude.add(Float.parseFloat(values[3]));
} else {
break;
}
}

如果您需要数组而不是列表:

velocity.toArray();

据我了解,数据行有 4 个项目,最后一行有 3 个项目(日期、距离、耗时)

关于java - 使用java解析文本文件,需要建议使用哪一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4717838/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com