我正在写一个简单的客户端/服务器应用程序,我发现使用DataInputStream读取数据非常方便,因为它允许您选择要读取的内容(无需自己将其从字节中转换),但是我想知道是否最好将它包装在BufferedInputStream中,或者如果这只会增加不必要的开销?Java - 将DataInputStream与套接字一起使用,是否缓存?
我问的原因是因为我不知道直接从套接字流中读取代码有多昂贵(当使用BufferedInputStream时,它只会从套接字流读取一次,然后使用BufferedInputStream DataInputStream类)。
收到的数据通常非常小,大约20-25字节。
在此先感谢您的任何答案! :d
这没有意义。缓冲区在套接字的生命周期中被分配一次。可以有任意数量的读取。读取越缓慢,读取越缓慢。 – EJP 2010-11-05 23:16:27
如果客户端正在连接,发送一条小消息,然后断开(如Ajax-y可能),则缓冲可能效率低下。阅读数量必须非常小,但20-25的范围可能足够低。我不知道:这就是为什么我建议分析。 – 2010-11-05 23:20:10
现在我想到了,AJAX不会给你20-25字节的消息...... XML太冗长了。不过,我*认为客户不会保持联系。如果这个假设是错误的,那么总是使用缓冲区。 – 2010-11-05 23:22:20