[英]Java RandomAccessFile vs. DataInputStream for byte operations
我需要从文件中读取字节。
使用RandomAccessFile
和使用DataInputStream
之间是否有区别(例如,效率,内存,运行时,复杂性和代码的优雅程度)?
我使用的唯一方法是readByte()。
同样,对于另一个方向,如果只需要writeByte(),则RandomAccessFile
和DataOutputStream
之间是否有区别?
( RandomAccessFile
是双向的这一事实不计算在内,读取和写入未连接且无法共享)。
还有其他对象更适合这种阅读和写作吗?
如果您仅执行顺序访问,那么它们本身就等效。 但是,围绕FileInputStream
的BufferedInputStream
的DataInputStream
将比RandomAccessFile
效率大大提高。
如果只需要顺序读取/写入DataInputStream/DataOutputStream
则完全可以。
如果您需要随机访问(例如字节数组),请使用RandomAccessFile
。
我认为它们之间在内存消耗等方面没有任何显着差异,因为它们只是JVM和OS之间的中介。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.