gpt4 book ai didi

java - BufferedInputStream 到 ByteArrayOutputStream 非常慢

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:17:37 25 4
gpt4 key购买 nike

我有一个与以下链接非常相​​似的问题:

PDF to byte array and vice versa

主要区别在于我试图通过包含二进制的 ServerSocket 而不是文件来解释 Socket 连接。这按预期工作。

但是,我遇到的问题是这个过程需要很长时间才能读入内存,大约 1 分 30 秒读取 500 字节(尽管每个流的大小会有很大差异)

这是我的代码:

BufferedInputStream input = new BufferedInputStream(theSocket.getInputStream());
byte[] buffer = new byte[8192];
int bytesRead;
ByteArrayOutputStream output = new ByteArrayOutputStream();

while ((bytesRead = input.read(buffer)) != -1)
{
output.write(buffer, 0, bytesRead);
}

byte[] outputBytes = output.toByteArray();

//Continue ... and eventually close inputstream

如果我在终端的 while 循环中记录它的进度,它似乎很快就记录了所有字节(即到达流的末尾),但随后似乎暂停了一段时间跳出 while 循环并继续。

希望这是有道理的。

最佳答案

好吧,你一直在阅读,直到套接字关闭,基本上 - 那是 read 将返回 -1 的时候。

所以我的猜测是连接的另一端在关闭之前保持打开状态 90 秒。解决这个问题,您的问题就会解决。

关于java - BufferedInputStream 到 ByteArrayOutputStream 非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22013578/

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