Text files are hard. Not because they're hard per se, but using a text file means you'll need a to round-trip your data through a stringyfier and a parser and still be the same.
Binary files are much easier, you can use a BinaryWriter to just Write every field in every object (you may need to or want to add IDs to some objects so you can save references), use a BinaryReader and ReadSomeType to load (in the same way and order as you did the writing, of course), and your data is guaranteed to be intact. There will be no annoying things such as "loading a saved double loses accuracy", you won't have to decide on a syntax, and you won't have to write a parser.
Using automatic binary serialization has some of the same pros, but it has big cons: terribly slow, won't work across multiple versions, generates huge files, doesn't work with some build-in types anyway.