我希望在我的应用中使用原始文件夹中的文本文件。我正在使用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(文件),但我认为我没有正确地声明文件名,也不知道这是否是完成此操作的最佳方法。通常,如果你知道文件名,你可以简单地做:
扫描仪fileReader =新扫描仪(“文件名”);
但是在这个循环中,我实际上从未设置过文件名。
答案 0 :(得分:0)
我希望在我的应用中使用原始文件夹中的文本文件
我假设“原始文件夹”表示项目中的res/raw/
资源目录。
我不知道如何告诉扫描仪扫描此特定文件
那是因为没有档案。该文件存在于您的开发计算机上。 运行时中原始资源的表示就是:原始资源。在封面下,它实际上是ZIP文件中的条目。
您需要获取原始资源的R.raw
值,然后使用getResources().openRawResource()
获取可以传递给InputStream
的{{1}}。
除非您针对不同的配置(例如,语言)使用这些原始资源的不同版本,否则您可能会发现使用Scanner
目录和assets/
更轻松地使用您的应用打包文本文件。