You are correct you cannot really seek with text files. At least not in such a simplistic manner.
But your problem is bigger than that. Strings (and therefore your object which contains several strings), is going to be a variable size in a file. So even if you store it in binary you won't be able to seek to a specific object or overwrite a single object. You'll have to scan over the file by examining each object, determining its size, and seeking past it (or put an index at the start which has the position of each object in the file).
Overwriting data is an even bigger challenge, as you have to "shift over" all the data after the object you're writing if the object is not the exact same size as the object that was there previously.
Alternatively, you could use fixed-length strings (ie: a char array). This would allow you to dump them to a file in binary, would have the objects be fixed size in the file, would allow you to seek/edit, etc. Downside is you wouldn't be able to have strings longer than a predetermined maximum.
If any of this is unclear or doesn't seem to make sense... I strongly
recommend you get a hex editor and look at the files you're creating. To understand binary files, you really need to view them in a hex editor. There's really no other way.
This article I wrote a while back has some info which may be a good starting point: