背景:我目前正在创建一个应用程序,其中两个Java程序使用DataInputStream
和DataOutputStream
通过网络进行通信。在每次通信之前,我想发送一个指示,说明正在发送什么类型的数据,以便程序知道如何处理它。我正在考虑为此发送一个整数,但是一个字节有足够的可能组合。
所以我的问题是,Java的DataInputStream
readByte()
比readInt()
快吗?
另外,另一方面,Java的DataOutputStream
writeByte()
比writeInt()
快吗?
如果一个字节足以容纳您的数据,那么readByte和writeByte确实会更快(因为它读取/写入的数据更少(。不过,这不会有明显的区别,因为在这两种情况下,数据的大小都非常小 - 1 与 4 字节。
如果您有大量来自流的数据,那么使用 readByte 或 readInt 不会产生速度差异 - 例如调用 readByte 4 次而不是 readInt 1 次。只需根据您期望的数据类型以及使您的代码更易于理解的内容来使用一个。无论如何,您都必须阅读整个内容:)