I also prefer to use the block version of File.open which ensure that the file is closed even if unexpected errors occur during operation.
We should also take into account that any file operation might fail and handle that in some manner - even if it's just outputting an error to the console. Maybe a messagebox to the user?