2011-06-02 14 views
23

में फ़ाइल को लोड करने का तरीका मेरे पास एक फ़ाइल फ़ाइल है, जिसमें एक स्ट्रिंग के रूप में, इसके पथ सहित टेक्स्ट फ़ाइल को इंगित किया गया है। अब मैं इस .csv फ़ाइल को मेमोरी स्ट्रीम में लोड करना चाहता हूं। मैं कैसे करूं?मेमोरी स्ट्रीम

उदाहरण के लिए, मैं इस है:

Dim filename as string="C:\Users\Desktop\abc.csv" 
+4

सुंदर इस के समान: http://stackoverflow.com/questions/6200329/how-to-load-a-file -from-folder-to-memory-stream-buffer – Tridus

उत्तर

26

आप एक MemoryStream में एक फ़ाइल को लोड करने की जरूरत नहीं है।

फ़ाइल को रखने वाले FileStream प्राप्त करने के लिए आप बस File.OpenRead पर कॉल कर सकते हैं।

यदि आप वास्तव में मेमोरीस्ट्रीम में फ़ाइल चाहते हैं, तो आप फ़ाइलस्ट्रीम को मेमोरीस्ट्रीम में कॉपी करने के लिए CopyTo पर कॉल कर सकते हैं।

+0

क्या मैं फ़ाइल को इस्टिस करते समय फ़ाइल जोड़ सकता हूं? – Ram

+0

@ राम: हाँ, आप कर सकते हैं। 'OpenRead' के बजाय बस' ओपन 'पर कॉल करें। फिर आप एक ही स्ट्रीम लिख और पढ़ सकते हैं। – SLaks

+0

CopyTo विधि .NET 4 से आगे मौजूद है। यह जवाब देखें http://stackoverflow.com/a/5730893/1589759 –

58
Dim stream As New MemoryStream(File.ReadAllBytes(filename)) 
+2

काफी बिंदु पर :) –

+0

मेमोरी स्ट्रीम में फ़ाइल लोड करने के बाद क्या मैं फ़ाइल की सामग्री में शीर्षक जोड़ सकता हूं? xls फ़ाइल में हेडर की तरह। – Ram

-1

तुम इतनी तरह एक फ़ाइल धारा में कॉपी कर सकते हैं:

string fullPath = Path.Combine(filePath, fileName); 
FileStream fileStream = new FileStream(fullPath, FileMode.Open); 
Image image = Image.FromStream(fileStream); 
MemoryStream memoryStream = new MemoryStream(); 
image.Save(memoryStream, ImageFormat.Jpeg); 
//Close File Stream 
fileStream.Close(); 
+0

इस तरह से ऐसा करने से छवि को डिकंप्रेस कर दिया जाएगा और इसे जेपीईजी के रूप में पुनः संयोजित किया जाएगा। मेमोरी स्ट्रीम में बाइट सरणी की प्रतिलिपि बनाने के लिए बस फ़ाइल स्ट्रीम कॉपीटो विधि का उपयोग करें। – hcham1

संबंधित मुद्दे