如果你有一个java.io.InputStream对象,你应该如何处理该对象并产生一个String?
假设我有一个InputStream包含文本数据,并且我想将其转换为a String,所以例如我可以将其写入日志文件.
采取InputStream并将其转换为最简单的方法是String什么?
public String convertStreamToString(InputStream is) {
// ???
}
Run Code Online (Sandbox Code Playgroud) 我有一个包含json对象数组的文件:
[{"test1":"abc"},{"test2":[1,2,3]}]
我希望使用Jackson的JsonParser从这个文件中获取一个输入流,并且在每次调用.next()时,我希望它从数组中返回一个对象,直到它用完对象或失败.
这可能吗?
使用案例:我有一个大型文件,其中json数组中填充了大量具有不同模式的对象.我希望一次获得一个对象,以避免将所有内容加载到内存中.
编辑:
我完全忘了提.我的输入是随着时间的推移而添加的字符串.它随着时间的推移逐渐积累json.我希望能够通过对象从字符串中删除已解析的对象来解析它.
但我想这没关系!只要jsonParser将索引返回到字符串中,我就可以手动执行此操作.
我有一个由外部库提供的JsonNode.我需要将这个JsonNode转换为它的POJO表示.
我见过这样的方法:
mapper.readValue(jsonNode.traverse(), MyPojo.class);
Run Code Online (Sandbox Code Playgroud)
但我对这种解决方案并不满意.traverse()实际上将我的JsonNode转换为String表示形式,然后将其反序列化为POJO.在这种情况下,性能对我来说是个问题.
这样做的其他方式?
谢谢