当前位置: 首页 > 面试题库 >

在Android中访问资源文件

濮俭
2023-03-14
问题内容

我的/ 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进行处理?是 File file = new File(“ res / raw /
textfile.txt”);
Android中的错误html" target="_blank">方法?

**_答案: _

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

问题答案:

如果您res/raw/textfile.txt通过“活动/窗口小部件”调用中有文件:

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

点实际上应该是在R.raw中找到的整数…可能与您的文件名相对应R.raw.textfile(通常是不带扩展名的文件的名称)

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



 类似资料:
  • ServletContext接口定义了三个方法来访问当前Web应用程序的资源文件,这三个方法如下: l getResourcePaths方法 该方法返回指定Web应用程序目录中的所有子目录和文件,这些返回的目录文件不包括嵌套目录和文件。这些返回的子目录和文件都封装在该方法返回的一个Set对象中。getResourcePaths方法的定义如下: public Set getResourcePaths

  • 但我进的是空异常。有什么问题,有人能帮忙吗?

  • 我正在从主类访问资源文件夹中的文件 我收到了这个错误: 我甚至打开了jar文件,remoteUnitsIdsInOldServer.txt文件就在那里,在类内部

  • 问题内容: 我有一个带有工具栏的Java项目,该工具栏上带有图标。这些图标存储在名为resources /的文件夹中,因此路径可能是“ resources / icon1.png”。该文件夹位于我的src目录中,因此在编译后,该文件夹将被复制到bin / 我正在使用以下代码访问资源。 (imageName将为“ resources / icon1.png”等)。在Eclipse中运行时,效果很好。

  • 问题内容: 我有一个包含要分发的资源(主要是缓存,日志记录等的配置)的文件。 我对这些资源的相对路径有疑问,所以我做了在另一个stackoverflow问题中发现的问题,该问题说这是有效的方法: 不幸的是,这不起作用。 有任何想法吗?谢谢! PS:显然我不能使用绝对路径,如果可能,我想避免使用环境变量 问题答案: 确保资源文件夹在项目设置中列为源文件夹。另外,确保在构建jar时将资源文件夹设置为导

  • 我正在尝试从类路径/JAR 文件作为文件对象访问资源。我知道这是使用输入流对象的首选方法,但我使用的是需要文件对象的外部库(WorldEdit)。 这是我的代码: 现在,当我还在eclipse中时,访问资源的两种方式都可以完美地工作并产生以下输出: 但是,在将代码导出到 JAR 存档后,代码将失败: 因此,我一直在寻找一种方法,要么直接以文件形式访问资源,要么使用InputStream并将该Inp