I am writing a program to copy all the file content to a single file and split the single file into the original file.
these are my 2 files. I am able to mix them successfull, ie., copy the contents of the file to a file >> output.dat file, by adding some identifiers like starting of the file, file path and file name.
now, my issue is that how to split the files into the original file. if given the file name.
I mean to say that, form the output.dat file I want to separate raju.txt and document.txt while deleting or with out deleting the content in the output.dat file.
I wanna do this in byte streams.
This is the file I have written to copy n number of files to output.dat.
Could you please UseCodeTags next time? I've added them for you this time.
As for the issue. Your writing algorithm may work, but it makes it harder for you to read the data back. There are no clear separators, that indicate where one part starts and another ends. Sure, you write the file name, but you write it as bytes. That means that you don't know where it ends.
If I were you I'd just use ZipOutputStream / ZipInputStream / ZipFile. That way you get all the hard work for free. If you don't want to, or cannot, you need better separators. Here's how I have written something like this before when this question was asked before:
The reading is then easy enough, using DataInputStream:
- read a UTF string - read a long
- read exactly that many bytes