gpt4 book ai didi

java - 将InputStream复制到OutputStream的更好方法

转载 作者:行者123 更新时间:2023-12-01 13:38:53 24 4
gpt4 key购买 nike

有没有更好的方法将InputStream复制到OutputStream

我有一个由 HttpClient 提供的输入流。我有另一个连接到 servlet 输出流的流。

要将数据从输入流复制到输出流,我使用 apache IOUtils.copy 方法,该方法使用临时缓冲区进行复制。

我想知道如果我使用 ByteBuffer 是否会对性能有所帮助?

最佳答案

如果没有带流的缓冲区,您就无法逃脱,除非您想一次复制一个字节,除非您知道堆栈中存在用于输入和输出的缓冲流,否则效率不高。

您不能将ByteBuffers与流一起使用。您可以将它们与 channel 一起使用,也可以从流中获取 channel ,但您所做的只是在流 API 上添加额外的层。你最好直接面对它,如下所示。在网络流的情况下,无论如何,性能由网络决定,而不是由代码决定。

while ((count = in.read(buffer)) > 0)
{
out.write(buffer, 0, count);
}

适用于所有大于零的缓冲区大小。我一般用8192。

关于java - 将InputStream复制到OutputStream的更好方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21013934/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com