पर आउटपुट करने का सबसे अच्छा तरीका क्या है, मैं सोच रहा हूं कि एक स्ट्रीम से पढ़ने के लिए बाइट बफर और लूपिंग का उपयोग करने के अलावा, बेहतर/अंतर्निहित तरीका है या नहीं, दूसरा (.NET में)। आम तौर पर यह एक धारा में एक परिवर्तन लागू करने और इसे स्थानांतरित करने के लिए किया जाता है।एक धारा के आउटपुट को
इस उदाहरण में, मैं एक फ़ाइल क्या लोड हो रहा हूँ, (त्रुटि सादगी के लिए हटा दिया हैंडलिंग) एक Deflate धारा के माध्यम से डालने और एक फाइल करने के लिए इसे बाहर लेखन:
byte[] buffer = new byte[10000000];
using (FileStream fsin = new FileStream(filename, FileMode.Open))
{
using (FileStream fsout = new FileStream(zipfilename, FileMode.CreateNew))
{
using (DeflateStream ds = new DeflateStream(fsout, CompressionMode.Compress))
{
int read = 0;
do
{
read = fsin.Read(buffer, 0, buffer.Length);
ds.Write(buffer, 0, read);
}
while (read > 0);
}
}
}
buffer = null;
संपादित करें:
.NET 4.0 में अब Stream.CopyTo फ़ंक्शन है, हैललुजा
हाँ है, मैं अगर हम 3.5 पर थे इस करना होगा। आम तौर पर हम इसे एक स्थिर विधि पुस्तकालय में डाल देते हैं। –
दरअसल, इसे 3.5 से पहले StreamCopier.Copy कहा जाता था .-) –
ध्यान दें कि यदि आप .NET 2.0 का उपयोग कर रहे हैं तो यह ठीक है, जब तक आप C# 3 का उपयोग कर रहे हों। आप अभी भी थोड़ा सा एक्सटेंशन विधियों का उपयोग कर सकते हैं चालबाजी का। Http://csharpindepth.com/Articles/Chapter1/Versions.aspx –