在BufferedReader访问的Android项目中存储文件的位置?

时间:2014-07-30 16:50:06

标签: java android eclipse file bufferedreader

我有一个我需要访问的文件(更具体地说是.txt文件)。我尝试创建自己的资源文件夹,然后使用BufferedReader访问它,但得到一个空指针错误。

所以问题:

存储此文件的最佳方法在哪里,仍然使用BufferedReader来访问它?

3 个答案:

答案 0 :(得分:1)

对于您需要使用apk打包的文件,您可以使用资产,请查看project structure docs

对于稍后下载的文件,我建议使用外部存储。

答案 1 :(得分:1)

将它放在res / raw文件夹中。

然后你可以这样做:

BufferedReader br = new BufferedReader(new InputStream(context.openRawResources(R.raw.<filename>)));

答案 2 :(得分:0)

3种在Android中访问文件的方式:

  1. 来自资产,即原始文件夹,但您的apk文件大小很大,因为文件位于或与您的apk一起使用。
  2. 来自外部存储,即sdcard,您需要具有从sdcard访问的写入权限。
  3. 来自互联网您需要互联网权限才能访问该文件。
  4. 以上3种方法都可以利用BufferedReader,你需要用BufferedReader链接输入流来读取指定的数据字节,而不是每字节读取1个字节。

    我的代码段:

    File f = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), "vishnu.txt");
    try {
        FileInputStream fi = new FileInputStream(f);
        BufferedReader myReader = new BufferedReader(new InputStreamReader(fi));
        String temp = myReader.readLine();
        Toast.makeText(getBaseContext(), temp, Toast.LENGTH_LONG).show();
        myReader.close();
        fi.close();
    } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }