首页 > 解决方案 > 从资源文件夹中读取大小超过 1MB 的文件时 InputStream 为空

问题描述

我正在尝试从资源文件夹中读取文本文件并将其保存到字符串变量中。但是,当将文件加载到 InputStream 时,它会将 InputStream 对象返回为 null。问题是它仅在文件大于 1 MB 时引发错误(实际上我怀疑是这样)。我尝试过使用较小的文件,它按预期工作。

private static String getString(String filename) throws IOException {
    InputStream inputStream = TextParser.class.getClassLoader().getResourceAsStream(filename);
    if (inputStream==null) throw new NullPointerException("InputStream is null");
    final StringBuilder out = new StringBuilder();
    Reader in = new InputStreamReader(inputStream, StandardCharsets.UTF_8);
    String line;
    try (BufferedReader bufferedReader = new BufferedReader(in)) {
        while ((line = bufferedReader.readLine()) != null) {
            out.append(line);
        }
    }
    return out.toString();
}

InputStream 为空,而不是有效对象。

标签: javajava-io

解决方案


推荐阅读