java - 从资源文件夹中读取大小超过 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 为空,而不是有效对象。
解决方案
推荐阅读
- c++ - 带有宏的旧式 C 标头的旧式强制转换(C 强制转换)上的 g++ 警告
- python - ImportError: undefined symbol - 当我在 C 的扩展中实现 Opengl 代码和 Tkinter 时
- algorithm - 昂贵的卷帘窗产品的有效总和
- bash - 递归删除文件夹和子文件夹中的文件
- opencv - 获取不同级别的图像边缘
- django - 如何使用 CreateView 将用户对象传递给 Modelform
- ansible - 使用 Vagrant 测试 ansible 角色
- c# - 无法读取文档开头带有字符的 XML 文件
- spring-rabbit - 集成测试 RabbitMQ 列表器 - 间歇性失败,因为消息需要时间排队
- sql - Redshift 拆分单行/列中的多封电子邮件