【问题标题】:Read textfile in Android - where to place the file在 Android 中读取文本文件 - 放置文件的位置
【发布时间】:2014-09-26 06:40:42
【问题描述】:

如果我想阅读内容,我应该将某个文本文件放在 Eclipse 项目中的什么位置?

我应该使用哪些对象?

我尝试使用以下语法但找不到文件?也许在这种情况下使用了计算机文件系统?

 private void read() throws FileNotFoundException, IOException {

    File file = new File("test.txt");
    FileReader fileReader = new FileReader(file);
    BufferedReader buffReader = new BufferedReader(fileReader);

    String[] stringBuffer = new String[2];
    String line;
    int i = 0;
    while ( (line = buffReader.readLine()) != null) {

        stringBuffer[i] = line;
        i++;
    }

    System.out.println(stringBuffer[0] + stringBuffer[1]);
}

我的想法是搜索从项目的根文件夹开始,但我猜它完全错误,因为使用了计算机文件系统?

【问题讨论】:

  • 如何使用/assets 文件夹?或者你可以在它下面创建一个子文件夹。

标签: android text-files bufferedreader


【解决方案1】:

如果您想在构建时将此文件与您的 Android 应用程序捆绑在一起,您有两种选择:/res 下的 /raw 文件夹或 /assets 文件夹。您应该将文件放在这里并以正确的方式访问所选目录。有关更多信息,请阅读有关 Android 项目的内置文件夹here 的更多信息。

例如,如果您将文本文件存储在/assets/ 中,这很可能是文本文件的正确位置,您需要使用AssetManager 访问文件的内容。假设您创建了一个名为:

/assets/test.txt

假设您从 Activity 执行此操作,您可以这样访问该文件,以便 this 关键字指向您的 Activity:

AssetManager assetManager = this.getResources().getAssets();
InputStream input = assetManager.open("test.txt");

您现在可以使用该输入流以类似于您在原始问题中所做的方式从文件中读取。您可以使用该 InputStream 创建一个 BufferedReader,如下所示,假设您的文本内容以 UTF-8 编码:

BufferedReader br = 
    new BufferedReader(new InputStreamReader(input, "UTF-8"));

【讨论】:

  • 没问题@user3155478!谢谢@user2365568,我已经修复了变量引用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-25
  • 1970-01-01
  • 2012-03-01
  • 1970-01-01
  • 2012-10-21
  • 1970-01-01
相关资源
最近更新 更多