【发布时间】:2021-10-12 22:41:12
【问题描述】:
我有一个将 XML 转换为 JSON 的 Spring Boot 应用程序。通过在内部调用另一个JAVA application 并传递一些信息来完成转换。被调用应用程序的实现不受我的控制,我无权对其进行任何更改。
被调用的Java Application 需要OutputStream,所以我使用ByteArrayOutputStream 并在方法中传递它。收到输出后,我将OutputStream 转换为String。在转换过程中,我遇到了警告Inefficient conversion from ByteArrayOutputStream。
我想知道如何解决此警告。我研究了一下,发现我们需要传递ByteArrayOutputStream 的大小,但在我的情况下,我不知道它可以有多少大小,因为它取决于我提供的输入 XML 的大小。所以我无法预测并设置它。
有人可以指导我在我的Spring Boot 应用程序ByteArrayOutputStream 中可以做什么,以便修复我在Intellij IDE 中收到的警告:
Inefficient conversion from ByteArrayOutputStream
以下是我的代码示例:
final InputStream inputStream = new ByteArrayInputStream(xmlEvents.getBytes(StandardCharsets.UTF_8));
final var output = new ByteArrayOutputStream();
new Converter().convert(inputStream, new Handler<>(new Validator(), new StreamCollector(output)));
return new String(output.toByteArray());
我收到以下行的警告:
new String(output.toByteArray())
【问题讨论】:
-
您应该会看到 IntelliJ 建议的修复 -
output.toString(StandardCharsets.UTF_8)。 -
@Sweeper 非常感谢。我不知道我是怎么错过的。非常感谢您的回复。这对我有用。
标签: java spring spring-boot outputstream bytearrayoutputstream