0

我想在我的应用程序中使用的原始文件夹中有文本文件。我正在使用 ListFragments 并且根据选择的项目,我想在新布局中加载该文件文本。

我可以正确加载文本,但我希望能够以前扫描文件,以便我可以让文件的第一行成为 ListView 中显示的标题。我有一个方法可以确定原始文件夹中的文件数量并将名称添加到 ArrayList。

这是我的方法:

    private void listRaw() {
    Field[] fields = R.raw.class.getFields();

    for (int count = 0; count < fields.length; count++) {

            myArrayList.add(fields[count].getName());
    }
}

我遇到的问题是设置扫描仪。我不知道如何告诉扫描仪扫描这个特定的文件。我尝试创建一个新的 File 对象并使用 Scanner(File) 但我认为我没有正确声明文件名,也不是完成此操作的最佳方法。通常,如果您知道文件名,您可以简单地执行以下操作:

扫描仪 fileReader = new Scanner("文件名");

但在这个循环中,我实际上从未设置过文件名。

4

1 回答 1

0

我想在我的应用程序中使用的原始文件夹中有文本文件

我假设“原始文件夹”是指res/raw/项目中的资源目录。

我不知道如何告诉扫描仪扫描这个特定的文件

那是因为没有文件。该文件存在于您的开发机器上。运行时原始资源的表示就是:原始资源。在幕后,它实际上是 ZIP 文件中的一个条目。

您需要获取R.raw原始资源的值,然后用于getResources().openRawResource()获取InputStream可以传递给Scanner.

assets/除非您针对不同的配置(例如语言)拥有这些原始资源的不同版本,否则您可能会发现使用目录和AssetManager使用应用程序打包文本文件更容易。

于 2013-06-20T17:26:10.090 回答