Java RandomAccessFile vs. DataInputStream for byte operations
file-io, java
Solution
If you are only doing sequential access, by themselves they are essentially equivalent; however a `DataInputStream` around a `BufferedInputStream` around a `FileInputStream` will be considerably more efficient than a `RandomAccessFile`.
Problem
I need to read bytes from a file. Is there a difference (e.g. efficiency, memory, runtime, complexity and inelegance of code) between using `RandomAccessFile` and using `DataInputStream`? The only method I use is readByte(). Similarly for the other direction, is there a difference between `RandomAccessFile` and `DataOutputStream` if all that is needed is writeByte()? (The fact that `RandomAccessFile` is bidirectional doesn't count, the reading and writing are not connected and cannot share it). Is there any other object that would better suit that kind of reading and writing?