とまと あんらいぷ…

エンジニアの活動記録とかつぶやきとか

GitHub

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

【C#】StreamWriterの注意点

System.IO.StreamWriterの使い方


System.IO.StreamWriterのWriteメソッドは引数に文字列を取って
指定したファイルに文字列の書き込みができる。

書き込みの途中で、指定したファイルはオープンしたままで(同じStreamで)
バイナリデータの書き込みを行いたい時は(書き込み方法を文字列→binaryに変更したい)
System.IO.StreamWriterのBaseStreamプロパティを参照し、
BaseStream.WriteByteメソッドにバイナリデータをそのまま指定すれば
そのStreamにアクセスしつつ記載が可能。

注意点としてはBaseStream.WriteByteメソッド呼び出し前に
Streamのpositionを適切に移動してあげないと意図した通りにデータの書き込みができない。



こんな感じ。

例えば、最後に終端記号(1AのEOF)を書きたい時は
一旦Flushメソッドの呼び出しが必要です。

abcde(1A)
これが意図している結果。

Flushメソッドの呼び出しがない場合は、
(1A)bcde
こうなる。

Flushメソッドを呼び出さなくてもpositionプロパティに直接数値をいれてやっても大丈夫。
バイナリデータの書き込みとか、
ストリームを意識して読み書きしたいときは、ポジションは適切に管理しないとダメだねということです。
スポンサーサイト

テーマ:プログラミング - ジャンル:コンピュータ

FC2Ad

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。