ここでの問題は、区切り文字をシリアル化しないことです。追加:
w.Write(delimiter)
プレ>Write メソッドの最初の行として
delimiter = r.ReadString();
プレ>Read メソッドの最初の行として。
提案された回避策に対する質問について:
そうではありません。テスト シナリオで機能しただけです。
Write メソッドは Read メソッドと互換性がある必要があります。 2 つの文字列を書き込んで 1 つだけを読み取ると、うまくいきません。ここでの考え方は、オブジェクトをメモリから削除してからロードできるということです。これは、Write と Read が行うべきことです。あなたの場合 - これは実際に起こっていて、オブジェクトの値を保持できませんでした.