gpt4 book ai didi

java - Android PipedOutputStream/PipedInputStream 逐字节传输好像不对

转载 作者:太空狗 更新时间:2023-10-29 15:23:21 25 4
gpt4 key购买 nike

PipedOutputStream的Android实现

write(byte[] buffer, int offset, int count) 

是根据write(byte oneByte)实现的。更具体的 PipedOutputStream

write(byte[] buffer, int offset, int count)

是通过遍历 字节[]缓冲区并为每个字节调用 write(byte oneByte)。参见 this .

以这种方式执行会导致对 PipedInputStream 的每个字节进行接收调用。此接收导致 notifyAll 唤醒读取器并使其读取。您以这种方式获得了很多单字节读取。

我可以看到这是一个正确的实现,但是速度很慢。是否有一些 Java 约定在某种程度上使这个错误?因为在 PipedOutputStream 上写入数组现在与对 PipedInputStream 的通知交织在一起。

写[a b c]结果写(a)通知写(b)通知写(c)通知。

最佳答案

是的,您链接的代码似乎暗示它使用 OutputStream 的默认实现按原样发送每个 byte。据我所知,这实际上是正确的,但可能效率很低。

关于java - Android PipedOutputStream/PipedInputStream 逐字节传输好像不对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5152087/

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