在 Android 中访问资源文件 [英] Access resource files in Android

查看:32
本文介绍了在 Android 中访问资源文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的/res/raw/文件夹 (/res/raw/textfile.txt) 中有一个资源文件,我试图从我的 android 应用程序中读取该文件以进行处理.

I have a resource file in my /res/raw/ folder (/res/raw/textfile.txt) which I am trying to read from my android app for processing.

public static void main(String[] args) {

    File file = new File("res/raw/textfile.txt");

    FileInputStream fis = null;
    BufferedInputStream bis = null;
    DataInputStream dis = null;

    try {
      fis = new FileInputStream(file);
      bis = new BufferedInputStream(fis);
      dis = new DataInputStream(bis);

      while (dis.available() != 0) {
              // Do something with file
          Log.d("GAME", dis.readLine()); 
      }

      fis.close();
      bis.close();
      dis.close();

    } catch (FileNotFoundException e) {
      e.printStackTrace();
    } catch (IOException e) {
      e.printStackTrace();
    }
  }

我尝试了不同的路径语法,但总是收到 java.io.FileNotFoundException 错误.如何访问/res/raw/textfile.txt 进行处理?File file = new File("res/raw/textfile.txt"); 是 Android 中的错误方法吗?

I have tried different path syntax but always get a java.io.FileNotFoundException error. How can I access /res/raw/textfile.txt for processing? Is File file = new File("res/raw/textfile.txt"); the wrong method in Android?

* 答案:*

* Answer: *

// Call the LoadText method and pass it the resourceId
LoadText(R.raw.textfile);

public void LoadText(int resourceId) {
    // The InputStream opens the resourceId and sends it to the buffer
    InputStream is = this.getResources().openRawResource(resourceId);
    BufferedReader br = new BufferedReader(new InputStreamReader(is));
    String readLine = null;

    try {
        // While the BufferedReader readLine is not null 
        while ((readLine = br.readLine()) != null) {
        Log.d("TEXT", readLine);
    }

    // Close the InputStream and BufferedReader
    is.close();
    br.close();

    } catch (IOException e) {
        e.printStackTrace();
    }
}

推荐答案

如果您在 Activity/Widget 调用中的 res/raw/textfile.txt 中有一个文件:

If you have a file in res/raw/textfile.txt from your Activity/Widget call:

getResources().openRawResource(...) 返回一个 InputStream

点实际上应该是在 R.raw 中找到的整数...对应于您的文件名,可能是 R.raw.textfile(通常是没有扩展名的文件名)

The dots should actually be an integer found in R.raw... corresponding to your filename, possibly R.raw.textfile (it's usually the name of the file without extension)

new BufferedInputStream(getResources().openRawResource(...)); 然后以流的形式读取文件内容

new BufferedInputStream(getResources().openRawResource(...)); then read the content of the file as a stream

这篇关于在 Android 中访问资源文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆