Best Way to Write Bytes in the Middle of a File in Java

file, java, java-io

Solution

Reading and Writing in the middle of a file is as simple as using a `RandomAccessFile` in Java.

`RandomAccessFile`, despite its name, is more like an `InputStream` and `OutputStream` and less like a `File`. It allows you to read or seek through `bytes` in a file and then begin writing over whichever bytes you care to stop at.

Once you discover this class, it is very easy to use if you have a basic understanding of regular file i/o.

A small example:

public static void aMethod(){
    RandomAccessFile f = new RandomAccessFile(new File("whereDidIPutTHatFile"), "rw");
    long aPositionWhereIWantToGo = 99;
    f.seek(aPositionWhereIWantToGo); // this basically reads n bytes in the file
    f.write("Im in teh fil, writn bites".getBytes());
    f.close();
}

Problem

What is the best way to write bytes in the middle of a file using Java?

Original source