क्या गंतव्य स्ट्रीम में केवल कुछ बाइट्स की प्रतिलिपि बनाने के लिए Stream.CopyTo का उपयोग करने का कोई तरीका है? सबसे अच्छा कामकाज क्या है?केवल कुछ निश्चित बाइट्स की प्रतिलिपि बनाने के लिए Stream.CopyTo का उपयोग करने का कोई तरीका?
संपादित करें:
मेरे वैकल्पिक हल (कुछ कोड छोड़े गए):
internal sealed class Substream : Stream
{
private readonly Stream stream;
private readonly long origin;
private readonly long length;
private long position;
public Substream(Stream stream, long length)
{
this.stream = stream;
this.origin = stream.Position;
this.position = stream.Position;
this.length = length;
}
public override int Read(byte[] buffer, int offset, int count)
{
var n = Math.Max(Math.Min(count, origin + length - position), 0);
int bytesRead = stream.Read(buffer, offset, (int) n);
position += bytesRead;
return bytesRead;
}
}
तो कॉपी करने के लिए n बाइट्स:
var substream = new Substream(stream, n);
substream.CopyTo(stm);
बाइट्स की संख्या पढ़ें और उन्हें गंतव्य स्ट्रीम में लिखें? – carlosfigueira