Visual Basic 中学校 掲示板 投稿の管理
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
オブジェクトをシリアライズでバイナリ保存、読みこみについて
この投稿へのリンク
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=10944#CommentId24103
この投稿の削除
削除パスワード
削除する
コメント本文
投稿者
魔界の仮面弁士
 (社会人)
投稿日時
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 継承クラスのすべてに言える事です。