Java 的 DataInputStream 的 readByte() 是否比 readInt() 快?

Is Java's DataInputStream's readByte() faster than readInt()?

背景: 我目前正在创建一个应用程序,其中两个 Java 程序使用 DataInputStreamDataOutputStream 通过网络进行通信. 在每次通信之前,我想发送一个指示,说明正在发送的数据类型,以便程序知道如何处理它。我正在考虑为此发送一个整数,但是一个字节有足够的可能组合。

所以我的问题是,Java 的 DataInputStreamreadByte() 是否比 readInt() 快?

另外,另一方面,Java的DataOutputStreamwriteByte()是否比writeInt()快?

如果一个字节就足够您的数据,那么 readByte 和 writeByte 确实会更快(因为它 reads/writes 数据更少)。不过,这不会有明显的区别,因为两种情况下数据的大小都非常小——1 字节和 4 字节。

如果您有大量来自流的数据,那么使用 readByte 或 readInt 不会产生速度差异 - 例如调用 readByte 4 次而不是调用 readInt 1 次。只需根据您期望的数据类型以及使您的代码更易于理解的因素来使用一个。无论如何,您都必须阅读全部内容:)