0

我有以下 *.txt 文件

这里是txt文件

我如何可以提取数组中的时间或其他内容及其在额外数组中的关联值。像

ArrayTime[..., 16:52, 17:07,....]
ArrayG[..., 533, 469,....]
ArrayGd[..., 186, 170,...]

如何从数组中取回值?

感谢您的帮助

4

3 回答 3

0

您可以将数组制作为 JSON 对象并将其制作为字符串格式并将其保存在您的文件中。在获取时,您可以读取字符串并轻松将其转换为 JSON 对象

String json;
FileInputStream stream = new FileInputStream(File);
try {
    FileChannel fc = stream.getChannel();
    MappedByteBuffer bb = fc.map(FileChannel.MapMode.READ_ONLY, 0, fc.size());
    /* Instead of using default, pass in a decoder. */
    json = Charset.defaultCharset().decode(bb).toString();
}
finally {
    stream.close();
}
JSONObject obj = new JSONObject(json);
于 2013-05-30T13:25:27.630 回答
0

读取文件的每一行,忽略顶部的行,直到实际表开始。

使用空格作为分隔符拆分每一行,这将为您提供一个包含 4 列中的每一列的数组。将该单行数组中的条目添加到表示每列中所有值的相应 ArrayLists。

这里有一些代码可以帮助您入门:

ArrayList<String> time = new ArrayList<String>();
ArrayList<String> g = new ArrayList<String>();
ArrayList<String> gd = new ArrayList<String>();
ArrayList<String> td = new ArrayList<String>();

String line = "";

//get a BufferedReader for your file.

while((line = br.readLine) != null){
    String row = line.split(" ");
    time.add(row[0]);
    g.add(row[1]);
    gd.add(row[2]);
    td.add(row[3]);
}

您必须弄清楚如何跳过不包含数据的顶行,如果要将值存储为数字而不是字符串,则必须进行转换。但这是您实现目标的总体方式。

注意:如果表格的行中有前导空格,您可能需要在调用split()方法之前将其删除

于 2013-05-30T13:26:29.900 回答
0

您最好以更简单的方式存储变量,例如

array=12:30,11:05,etc..

然后逐行读取文件。用“=”字符分割行,然后用逗号分割第二个字符串以创建一个数组。

于 2013-05-30T13:26:42.443 回答