2013-06-01 60 views
0

我需要一种在vb.net中将文件从一个文件流式传输到另一个文件的方式,以便不必将整个文件加载到内存中。这是我想要的:在文件1中流读取字节--->流写入将字节附加到文件2.vb.net - 如何将写入文件流式传输到文件

我将使用大文件,多GB,所以我需要最有效的方式来做到这一点,并且不想将文件的所有内容加载到内存中。

回答

2

下面是使用字节数组缓冲区在“块”中读取和写入文件的简单示例。你可以决定缓冲区有多大:

Dim bytesRead As Integer 
    Dim buffer(4096) As Byte 
    Using inFile As New System.IO.FileStream("c:\some path\folder\file1.ext", IO.FileMode.Open, IO.FileAccess.Read) 
     Using outFile As New System.IO.FileStream("c:\some path\folder\file2.ext", IO.FileMode.Create, IO.FileAccess.Write) 
      Do 
       bytesRead = inFile.Read(buffer, 0, buffer.Length) 
       If bytesRead > 0 Then 
        outFile.Write(buffer, 0, bytesRead) 
       End If 
      Loop While bytesRead > 0 
     End Using 
    End Using 
+0

非常感谢,我怎么pecify读取的最大字节数?谢谢... –

+0

读取的最大数量将是缓冲区的大小。或者你的意思是你只想复制一部分文件然后停止? –

+0

是的,确切地说,我想在x字节量后停止:) –