Masalahnya di sini adalah Anda tidak membuat serial pembatas. Tambahkan:
w.Write(delimiter)
sebagai baris pertama dalam metode Tulis Anda dan
delimiter = r.ReadString();
sebagai baris pertama dalam metode Baca Anda.
Mengenai pertanyaan Anda tentang solusi yang disarankan:
Itu tidak. Itu hanya bekerja dengan skenario pengujian Anda.
Metode tulis harus kompatibel dengan metode Baca. Jika Anda menulis dua string dan hanya membaca satu maka itu tidak akan berhasil. Idenya di sini adalah bahwa objek Anda dapat dihapus dari memori dan kemudian dimuat. Inilah yang seharusnya dilakukan oleh Write and Read. Dalam kasus Anda - ini memang terjadi dan Anda tidak dapat mempertahankan nilai objek.