The fact that you are saving a lot of information is neither here nor there as far as whether to use one method or two is concerned. The decision on whether to use one method or two should be based solely on the functionality to be provided. If you take a look at the actual implementation in my CodeBank thread you will see that the actual saving of the file occurs in one place only, i.e. the Save method, which is completely appropriate. The purpose of the SaveAs method is to allow the user select a file path to save to. If you call SaveAs it will select the file path and then it calls Save to actually do the saving. Likewise, if you call Save and there isn't already a file path selected to save to, it calls the SaveAs method to select a file path. In that case, you would call Save, it would call SaveAs and it would call Save again. Each method should do one thing and one thing only, calling other methods to do other things. Save does the saving and SaveAs selects the file path.

As for the FileStream, you specify the path of the file when you create it by passing a String to the constructor. You also specify at that point whether to read or write and whether to overwrite or append. Obviously if you can overwrite or append, you can specify an existing file.