Android:从* .txt文件中提取值

时间:2013-05-30 13:21:03

标签: java android

我有以下* .txt文件

Here for txt File

如何使用额外数组中的关联值在数组或其他内容中提取Times。像

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

如何从数组中获取值?

感谢您的帮助

3 个答案:

答案 0 :(得分: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);

答案 1 :(得分: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()方法之前删除它们

答案 2 :(得分:0)

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

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

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