Java- UnchekedIOException:从ClientHttpResponse读取时文件过早结束

时间:2018-09-21 05:59:52

标签: bufferedreader ioexception

不是重复的,因为那里提供的解决方案也无法像尝试的一样工作。

我正在尝试读取ClientHttpResponse,并尝试将其转换为字符串。在执行此过程时,我正面临文件异常的过早终止。

下面是场景,

如果我在以下代码的for循环中运行我的代码(300次),

return new ObjectMapper().writeValueAsString(new BufferedReader(new InputStreamReader(clientHttpResponse.getBody())).readLine());

我收到一条错误消息,为Premature EOF; nested exception is java.io.IOException: Premature EOF

并且成功运行99次迭代后,会出现上述错误消息。这意味着从1到99的循环是有效的,但是对于第100次迭代,正在发生异常。

当我尝试使用以下替代代码

Stream<String> stream = new BufferedReader(new InputStreamReader(clientHttpResponse.getBody())).lines();
StringBuffer buffer = new StringBuffer();
stream.forEach(i -> buffer.append(i));
return new ObjectMapper().writeValueAsString(buffer);

经过99次成功的迭代后,出现如下错误。

java.io.UncheckedIOException: java.io.IOException: Premature EOF
at java.io.BufferedReader$1.hasNext(BufferedReader.java:574)

0 个答案:

没有答案