2011-06-02 26 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 2011-06-02 11:37:40

回答

26

你并不需要一个文件加载到一个MemoryStream。

您只需拨打File.OpenRead即可获取包含该文件的FileStream

如果你真的想把文件放在MemoryStream中,你可以调用CopyTo把FileStream复制到MemoryStream中。

+0

我可以在文件流中添加文件吗? – Ram 2011-06-02 11:44:27

+0

@Ram:是的,你可以。只需调用'Open'而不是'OpenRead'。然后您可以写入并读取相同的流。 – SLaks 2011-06-02 11:45:01

+0

CopyTo方法从.NET 4开始。看到这个答案http://stackoverflow.com/a/5730893/1589759 – 2016-04-11 15:12:44

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

相当重要的一点:) – 2011-06-02 11:40:51

+0

加载文件到内存流后,我可以添加标题文件的内容?像xls文件中的标题。 – Ram 2011-06-02 11:43:03

-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

这样做会解压缩图像,然后将其重新压缩为jpeg。只需使用文件流copyto方法将字节数组复制到内存流。 – hcham1 2017-05-07 15:44:35