나는 텍스트를 System.IO.StreamWriter
.
기본 스트림 (에서 지정됨 new StreamWriter(underlyingStream)
)은 원격 파일에 기록합니다. (그 유형이 관련성이 있다고 생각하지 않지만 완전성을 위해 Microsoft Azure라고 언급하겠습니다 CloudBlobStream underlyingStream
).
지금, 나는 또한, 같은 내용으로 추가 압축 파일을 작성하여 만 사용하여이 작업을 확장하고 싶었다 GZipOutputStream compressedUnderlyingStream
사이 StreamWriter
와 두 번째 CloudBlobStream
.
두 CloudBlobStream
s를 기본 스트림으로 지정하는 방법을 찾고있었습니다 StreamWriter
. 그러나 나는 방법을 찾을 수 없었다. 두 개의 기본 스트림을 결합 할 수있는 스트림 유형이 있습니까? 아니면 어떻게 접근 할 수 있습니까? 참고 메모리의 데이터 양을 최소화하기 위해 모든 것이 스트림으로 유지되기를 원합니다.
//disregard lack of using statements for this example's sake
CloudBlobStream blobStream = blob.OpenWrite();
CloudBlobStream compressedBlobStream = compressedBlob.OpenWrite();
GZipOutputStream compressorStream = new GZipOutputStream(compressedBlobStream);
//I make the streamwriter here for the regular blob,
///but how could I make the same streamwriter also write to the compressedBlob at the same time?
TextWriter streamWriter = new StreamWriter(blobStream, Encoding.UTF8);
나는 내 머리 꼭대기에서 하나를 생각할 수 없지만 직접 작성하는 것은 사소한 일입니다.
class MultiStream : Stream
{
private List<Stream> streams;
public Streams(IEnumerable<Stream> streams)
{
this.streams = new List<Stream>(streams);
}
...
public override void Write(byte[] buffer, int offset, int count)
{
foreach(Stream stream in streams)
stream.Write(buffer, offset, count);
}
...
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다