StreamReader
ストリームで初期化したオブジェクトがあり、このストリームをディスクに保存したいと考えています (ストリームは.gif
または.jpg
または です.pdf
)。
既存のコード:
StreamReader sr = new StreamReader(myOtherObject.InputStream);
- これをディスクに保存する必要があります (ファイル名はわかっています)。
- 将来的にはこれを SQL Server に保存したいと思うかもしれません。
エンコード タイプも持っていますが、これを SQL Server に保存する場合に必要になりますか?
ベストアンサー1
Jon Skeet の回答で Tilendor が強調したように、ストリームにはCopyTo
.NET 4 以降のメソッドがあります。
var fileStream = File.Create("C:\\Path\\To\\File");
myOtherObject.InputStream.Seek(0, SeekOrigin.Begin);
myOtherObject.InputStream.CopyTo(fileStream);
fileStream.Close();
または、using
次の構文を使用します。
using (var fileStream = File.Create("C:\\Path\\To\\File"))
{
myOtherObject.InputStream.Seek(0, SeekOrigin.Begin);
myOtherObject.InputStream.CopyTo(fileStream);
}
Seek
まだ先頭にいない場合は、を呼び出す必要があります。そうしないと、ストリーム全体がコピーされません。