0

如何使用 socket 的 DataInputStream 读取非常大的数据 如果数据是 String 格式并且长度超过 1,00,000 个字符。

另外如何在 java 中使用 SocketChannel 编写大数据?

4

1 回答 1

1

问题是您的数据是以块的形式到达的。数据包大小可能会受到限制,或者 DataInputStream 的内部缓冲区可能只有 40k。我不知道,但没关系。无论哪种方式,所有 1000000 个字节都不会立即到达。所以你必须重写你的程序来期待它。您需要读取收到的较小块并将它们存储在另一个 byte[1000000] 变量中(跟踪最后一个字节索引的位置)。继续循环,直到你读完套接字。然后你可以使用你的内部变量。

于 2009-05-20T04:07:30.637 回答