投稿者 魔界の仮面弁士  (社会人) 投稿日時 2012/7/3 10:19:58
> 今、自作クラスをシリアライズでバイナリ保存しています。
どのようにしてバイナリ シリアライズしていますか?

自前でバイナリ保存/復元する方法のほか、VB の FilePut/FileGetを使う方法、
あるいは、各種シリアライザを使う方法などがあるかと思います。

また、シリアライザを使う手法ににしても、.NET標準の
BinaryFormatter や DataContractSerializer(のバイナリXML形式) の他、
オープンソース実装の物などがあり、それぞれで事情が異なるかと。


> ストリームはFileStreamクラスでやっていますが
ファイル化するなら FileStream、オンメモリなら MemoryStream あたりが定番ですね。


> System.IO.StreamReaderクラスは使えないみたいですね。
シリアライザの多くは、Stream (を継承した)クラスへの保存と読み込みに対応しています。

そして StreamReader の場合は、BaseStream プロパティから、元となる Stream を
取り出せるはずです。StreamReader のコンストラクタに Stream を渡していればそれが、
StreamReader のコンストラクタにパスを渡していれば FileStream が返されるかと。


> FileStreamクラスではファイルの末尾に来たかどうかをどう探知すればいいのでしょうか?
基本的には、Read 系メソッドの戻り値で判断することになります。
これは FileStream や StreamReader に限らず、Stream 継承クラスのすべてに言える事です。