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

如何从“资产”目录中读取文本文件作为字符串?

章永安
2023-03-14
问题内容

我的资产文件夹中有一个文件…我该如何阅读?

现在我正在尝试:

      public static String readFileAsString(String filePath)
        throws java.io.IOException{
            StringBuffer fileData = new StringBuffer(1000);
            BufferedReader reader = new BufferedReader(
                    new FileReader(filePath));
            char[] buf = new char[1024];
            int numRead=0;
            while((numRead=reader.read(buf)) != -1){
                String readData = String.valueOf(buf, 0, numRead);
                fileData.append(readData);
                buf = new char[1024];
            }
            reader.close();
            return fileData.toString();
        }

但是它抛出了一个空指针异常…

该文件称为“原始文件”,它位于文件夹资产中

我尝试使用以下方法进行投射:

readFileAsString("file:///android_asset/origin");

readFileAsString("asset/origin");``

但是都失败了…有什么建议吗?


问题答案:

您可以使用打开输入流AssetsManager

InputStream input = getAssets().open("origin");
Reader reader = new InputStreamReader(input, "UTF-8");

getAssets()Context该类的一种方法。

还要注意,您不应该重新创建字符缓冲区(buf = new char[1024],循环的最后一行)。



 类似资料:
  • 如果文件位置是资源文件夹,下面的代码工作正常,但是当文件位置在项目目录之外时,比如(c:\file.json),它就失败了。我们如何从项目目录之外加载文件。

  • 问题内容: 我可以将文件读取为字节数组 但是当我将其转换为字符串时 它将utf16字节视为ASCII 如何正确转换? 输出: 假 [255 254 91 0 83 0 99 0 114 0 105 0 112 0 116 0 32 0 73 0 110 0 102 0 111 0 93 0 13 0] Script I nfo] 更新: 在测试了两个示例之后,我已经了解了确切的问题。 在Windo

  • 问题内容: 我需要从Java WAR应用程序的类路径中读取文本文件。如何将其读取为InputStream。文件位于/ WEB-INF / classes /文件夹中,但是当我使用以下代码时,它仅返回null。 问题答案: 在其前面加上正斜杠以表示类路径的根: 或者,您可以使用来查找相对于上下文根的资源。因此,类将是。

  • 我有一个文本文件(.txt),我想成为以后可以扫描的资源。 在pubspec.yaml,我已经确保: 存在。该文件位于我创建的文件夹中,与和处于同一级别 我试图从自定义类读取文件,而不是小部件。 根据文档,我将使用此导入: 然后开始这样读: 要获得实际数据,请执行以下操作: 但是,当我使用

  • 问题内容: 我需要在文本文件中读写数据,但是还无法弄清楚该怎么做。 我在Swift的iBook中找到了此示例代码,但我仍然不知道如何写入或读取数据。 问题答案: 为了进行读写,您应该使用可写的位置,例如documents目录。以下代码显示了如何读写简单的字符串。您可以在操场上进行测试。 雨燕3.x-5.x 斯威夫特2.2 斯威夫特1.x

  • 以下是我得到的错误: 提前感谢!