【问题标题】:Android Reading a Text FileAndroid 读取文本文件
【发布时间】:2015-07-21 14:49:48
【问题描述】:

我正在 Android Studio 中制作一个项目,我的项目文件夹中有一个文本文件,每次编译时,我都希望我的代码能够读取该 .txt 文件。一切完成后,我希望该 .txt 文件位于 .apk 文件中。我不想从 SD 卡等读取数据。

但每次编译时我都会收到“找不到文件异常”。使用 eclipse 时,当您将 .txt 文件放在与项目相同的目录中时,代码可以毫无问题地找到 .txt 文件,但在 Android Studio 中,它找不到我刚刚创建的文本文件。我必须将我的 .txt 文件放在我的项目文件夹中的什么位置?
这是代码:

FileReader in = new FileReader("TEXTgreetingKeywords.txt"); 
final BufferedReader br = new BufferedReader(new InputStreamReader(in));

我用同样的方法在 Java 中读取文本文件。我不明白为什么它不能在 Android 上运行,因为它也使用 Java。

编辑------

我使用了资产管理器,但我又遇到了同样的错误

AssetManager asset = getAssets();
    try {
         in = asset.open("text.txt");
    } catch (IOException e) {
        e.printStackTrace();
    }

我是否必须将目录更改为“C:\App\main\text.txt”之类的目录?

【问题讨论】:

  • 也许assets 文件夹就是您要查找的文件夹

标签: java android eclipse text filenotfoundexception


【解决方案1】:

资产中读取文本文件:

在 Resources 目录中创建原始文件夹

粘贴您的文件到 raw 文件夹:

文件中读取文本

private String readText() {
        InputStream inputStream = getResources().openRawResource(
                R.raw.license_agreement);
        ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
        int i;
        try {
            i = inputStream.read();
            while (i != -1) {
                byteArrayOutputStream.write(i);
                i = inputStream.read();
            }
            inputStream.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return byteArrayOutputStream.toString();
    }

希望对你有所帮助。

【讨论】:

    【解决方案2】:

    要完成 R. Adang 评论: 您正在寻找assets 文件夹。您必须将它放在与res 文件夹相同的位置。 assets 中的文件将包含在 APK 中。

    您可以使用AssetManager 访问assets 中的文件。使用context.getAssets()获取您的 AssetManager 实例

    【讨论】:

    • 感谢您的完成! :P 在这里,为你投上一票
    • 我按照你说的尝试了,我创建了一个资产文件夹,但是当我尝试使用代码访问它时,我又遇到了同样的错误。我正在编辑问题,你能再检查一遍吗?
    • 我尝试了同样的事情没有问题。您是如何创建资产文件夹的?我的在这里:MyApplication/app/src/main
    【解决方案3】:

    在这种情况下,文件访问不仅是 java 的事情,你也有 android,这可能会产生问题。您使用File 的目的是从应用程序位置打开文件。要访问您的文件目录,您应该使用:context.getFilesDir()

    比你使用基本的File 构造函数。我希望这就是你要找的东西

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-10-01
      • 2015-09-13
      • 2011-11-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多