2013-06-01 77 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字節量後停止:) –