【问题标题】:How to search a .txt and retrieve data如何搜索 .text 并检索数据
【发布时间】:2014-11-02 04:31:21
【问题描述】:

制作一个Android应用程序,用户需要一个ID,然后点击提交。使用该 ID,它将搜索文本文件,如果找到,它将在单独的文本视图中显示内容。

txt 文件看起来像这样,每个内容用逗号 (",") 分隔

541,BoB,05-18-2014
483,Phil,01-19-1992
971,Komarov,10-30-1858

文本文件位于 res/raw/players.txt

有一个按钮的 onClick 处理程序。我有点不确定我应该使用哪种类型的阅读器以及如何搜索其内容。目前为止,

try {
        Resources res = getResources();
        InputStream ins = res.openRawResource(R.raw.players);
        byte[] b = new byte[ins.available()];
        ins.read(); 

    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
        System.out.print("error, cant read");
    }

【问题讨论】:

    标签: java android search delimiter


    【解决方案1】:

    上述文本格式通常称为CSV 格式,因为它们是逗号分隔值。

    您可以通过多种方式执行此操作,具体取决于您的偏好。我在文本文件中进行了精确搜索,但在计算机上使用 Java 而不是在 Android 中。基本区别在于您如何定义文件在设备上的位置。你可以像这样 StackOverflow post。请记住,您需要对带有“,”分隔符的字符串使用split 方法。示例 - String[] out = line.split(",");

    上述链接使用一个双维数组,您可以通过一个循环来搜索该数组,该循环通过您的特定“ID”的行索引。当找到该行的其余数据时,可以在嵌套循环中访问,然后放入相应的 TextViews。

    附录 在将每一行拆分为其组件时,您可以避免无用的处理和内存使用。相反,只需将每一行存储在一个字符串数组中并比较前几个字符。匹配成功后,为每个数据项拆分该行。

    如果您要处理非常大的文本文件,您可能需要研究搜索和其他搜索优化。

    祝你好运!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-10-14
      • 1970-01-01
      • 1970-01-01
      • 2021-12-16
      • 2015-08-31
      • 1970-01-01
      • 2020-10-12
      相关资源
      最近更新 更多