用于字节操作的Java RandomAccessFile与DataInputStream

我需要从文件中读取字节。
使用RandomAccessFile和使用DataInputStream之间是否存在差异(例如,效率,内存,运行时,复杂性和代码的不雅)?

我使用的唯一方法是readByte()。

同样,对于另一个方向,如果所需的全部是writeByte(),那么RandomAccessFileDataOutputStream之间是否存在差异?
RandomAccessFile是双向的这一事实不计算,读取和写入没有连接,不能共享它)。

还有其他对象更适合那种阅读和写作吗?

如果您只是进行顺序访问,那么它们本身就是等价的; 但是,围绕FileInputStreamBufferedInputStreamDataInputStream将比RandomAccessFile高效得多。

如果你只需要连续读/写它, DataInputStream/DataOutputStream就完全没了问题。

如果您需要随机访问(比如一个字节数组) – 请使用RandomAccessFile

我不认为它们在内存消耗等方面存在任何显着差异,因为它们只是JVM和OS之间的中介。