的大文件試圖轉換流對象爲byte [],並使用對於相同的以下方法:轉換流爲byte [] C#爲2GB
public static byte[] ReadFully(System.IO.Stream input)
{
byte[] buffer = new byte[16*1024];
using (System.IO.MemoryStream ms = new System.IO.MemoryStream())
{
int read;
while ((read = input.Read(buffer, 0, buffer.Length)) > 0)
{
ms.Write(buffer, 0, read);
}
return ms.ToArray();
}
}
然而輸入參數「輸入」是用於大文件是2 GB,因此代碼不會進入while循環,因此不會將其轉換爲字節數組。
對於較小的文件,它正在罰款
我懷疑你將有一個艱難的時間超過2^31個元素創建一個數組。你爲什麼需要這樣做? –
嘗試使用SharePoint 2010 - 客戶端對象模型下載大文件。我們有2GB的文件。因此,下載它我們使用我們下面的代碼:FileInformation fileInfo = Microsoft.SharePoint.Client.File.OpenBinaryDirect(clientContext,「thisFile」); System.IO.Stream流= fileInfo.Stream;現在我們的項目需求就是我們想要返回byte [],而不是流對象,因此試圖轉換流的byte [] – nina
那「項目需求」聽起來很粘稠,是誠實的。你是否檢查過一個大的可行的字節數組? –