Reputation: 138884
What is the best way to write bytes in the middle of a file using Java?
Upvotes: 18
Views: 16552
Reputation: 683
I think it’s best to create file chunks every time. And when the file is downloaded, connect them together. Now I'm working on it.
Upvotes: 0
Reputation: 138884
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();
}
Upvotes: 25
Reputation: 400284
Open the file in write mode without truncating it, seek to the desired offset, and write the desired data. Just be careful about text/binary mode.
Upvotes: 0