如何使用socket的DataInputStream读取非常大的数据如果数据是String格式且长度超过1,00,000个字符。
如何在java中使用SocketChannel编写大数据?
答案 0 :(得分:1)
问题是您的数据是以块的形式到达的。数据包大小限制了这一点,或者DataInputStream的内部缓冲区只有40k。我不知道,但没关系。无论哪种方式,所有1000000字节都不会一次到达。所以你必须重写你的程序才能期待。您需要读取您收到的较小块并将它们存储在另一个字节[1000000]变量中(跟踪最后一个字节索引的位置)。继续循环,直到你完成读取套接字。然后,您可以使用内部变量。