をストリーミングします。私はいくつかの解決策を思いついたが、私はそれらのストリームを直接接続する方法を見つけることができない。インターコネクトは、私はこのシナリオを持っている
私が達成しようとしているのは、まずtargetStreamからtargetStreamへのデータをtargetStreamのバッファなしでsourceStreamに送ります。
どうすればできますか?
ありがとうございます。
をストリーミングします。私はいくつかの解決策を思いついたが、私はそれらのストリームを直接接続する方法を見つけることができない。インターコネクトは、私はこのシナリオを持っている
私が達成しようとしているのは、まずtargetStreamからtargetStreamへのデータをtargetStreamのバッファなしでsourceStreamに送ります。
どうすればできますか?
ありがとうございます。
CopyTo
、例えば経由して別のストリームをコピーするためStream
に(.NET 4.0から)のサポートであり構築されています。
stream1.CopyTo(stream2)
例:
[Test]
public void test()
{
string inString = "bling";
byte[] inBuffer = Encoding.ASCII.GetBytes(inString);
Stream stream1 = new MemoryStream(inBuffer);
Stream stream2 = new MemoryStream();
//Copy stream 1 to stream 2
stream1.CopyTo(stream2);
byte[] outBuffer = new byte[inBuffer.Length];
stream2.Position = 0;
stream2.Read(outBuffer, 0, outBuffer.Length);
string outString = Encoding.ASCII.GetString(outBuffer);
Assert.AreEqual(inString, outString, "inString equals outString.");
}
内蔵CopyToメソッドchibacityの回答で参照されているものは.NET 4.0から入手できます。
以前のバージョンについては、this questionをご覧ください。
ストリームを渡ってはいけません! ... ごめんなさい。自分自身を助けることができませんでした。 –
@Mike「ストリームを渡ってはいけない! :) –
"エゴンは私を許しますか?ストリームを渡ることは悪いと言いました!"ああ、私はその映画が大好き! – vtortola