访问Android中的资源文件

时间:2010-11-02 20:22:08

标签: java android file resources

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

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进行处理? 文件文件=新文件(“res / raw / textfile.txt”); Android中的错误方法?


*答案: *

// 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();
    }
}

2 个答案:

答案 0 :(得分:28)

如果您的“活动/小组件”呼叫中有res/raw/textfile.txt中的文件:

getResources().openRawResource(...)会返回InputStream

这些点实际上应该是R.raw中的一个整数...对应于你的文件名,可能是R.raw.textfile(它通常是没有扩展名的文件的名称)

new BufferedInputStream(getResources().openRawResource(...));然后将该文件的内容作为流

读取

答案 1 :(得分:13)

事实上你有这个public static void main(String[] args)意味着你实现的代码非常错误。你几乎肯定没有经历任何hello android教程。你绝对应该这样做。