在Android中读取文本文件 - 放置文件的位置

时间:2014-08-03 18:18:43

标签: android text-files bufferedreader

如果我想阅读内容,我在哪里将某个文本文件放在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]);
}

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

1 个答案:

答案 0 :(得分:4)

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

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

的文件
/assets/test.txt

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

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

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

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