阅读纯文本文件

时间:2016-05-14 16:12:47

标签: java android file load bufferedreader

我知道这个话题可能已被覆盖过,但我无法找到问题的答案 我有一个文件,其中包含我需要阅读的一些单词 它在我的桌面版上正常运行,但是我尝试在模拟器上运行,我得到java.io.FileNotFoundException - no file found 我知道我必须以与桌面不同的方式加载文件。

任何帮助都将不胜感激。

以下是阅读文件的代码。

    String line;

        try {

            BufferedReader br = new BufferedReader(new FileReader("words.txt"));
            if (!br.ready()) {
                throw new IOException();
            }
            while ((line = br.readLine()) != null) {
                words.add(line);
            }
            br.close();
        } catch (IOException e) {
            System.out.println(e);
        }

但这在Android上不起作用!!

仍然没有解决方案!!

2 个答案:

答案 0 :(得分:1)

资产是开发计算机上的文件。它们不是设备上的文件。

获取资产InputStream AssetManager。您可以通过getAssets()Activity或其他Service致电Context来获得A

答案 1 :(得分:1)

您可以从android中的上下文中访问文件。

Context Context;
AssetManager mngr = context.getAssets();
String line;
        try {

            BufferedReader br = new BufferedReader(new FileReader(mngr.open("words.txt")));
            if (!br.ready()) {
                throw new IOException();
            }
            while ((line = br.readLine()) != null) {
                words.add(line);
            }
            br.close();
        } catch (IOException e) {
            System.out.println(e);
        }

或试试这个:

String line;
        try {

            BufferedReader br = new BufferedReader(new FileReader(getApplicationContext().getAssets().open("words.txt")));
            if (!br.ready()) {
                throw new IOException();
            }
            while ((line = br.readLine()) != null) {
                words.add(line);
            }
            br.close();
        } catch (IOException e) {
            System.out.println(e);
        }