gpt4 book ai didi

java - 套接字输入流在流末尾不返回 -1

转载 作者:行者123 更新时间:2023-12-02 07:28:02 25 4
gpt4 key购买 nike

这是发生问题的代码片段:

public static byte[] copyLargeExt(InputStream input) throws IOException {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
byte[] buffer = new byte[1024*8];
int n = 0;
while(-1 != (n = input.read(buffer))) {
baos.write(buffer, 0, n);
// i just append this pattern ({###END###}) to force the break
/*if(baos.toString(UTF8.name()).endsWith("{###END###}")) {
break;
}*/
}
return baos.toByteArray();
}

有人可以帮助我吗?

最佳答案

问题中的代码读取到套接字流的末尾。如果该方法处于阻塞状态并且处于读取调用中,则只能意味着另一端尚未关闭其相应的输出流。

你有两个选择:

  • 更改另一端以关闭其输出流,以便此代码将看到 EOF。

  • 更改“协议(protocol)”,以便此代码知道需要多少字节的数据......并准确读取该字节数。

关于java - 套接字输入流在流末尾不返回 -1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13288073/

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