[問題] 處理大型資料陣列無法儲存問題
小弟剛學C#不久
最近在練習C#時遇到在處理檔案上的問題
比如說 我今天要讀取一個 700MB的光碟映像檔 算出其MD5值
抑或是 有個好幾百MB的圖檔 要做影像處理
現在的問題是 我用FileStream 讀取這些檔案
卻無法把它放到 byte陣列中 會跳出out of memory
現在想了解說
1.一般在處理這些大檔案 放在陣列的作法是否可行?而其方法為何?
2. 若陣列無法處理這樣大型的資料 那又該如何處理?
感謝版上大大解答^^
補上程式碼
private static byte[] read_file(FileInfo fin)
{
FileStream fs = new FileStream(fin.FullName,FileMode.Open);
StreamReader sr = new StreamReader(fs,Encoding.Default);
byte[] array = Encoding.Default.GetBytes(sr.ReadToEnd());
//在讀取1百多MB的時候還是ok 不過大約超過200MB就會有問題
fs.Close();
sr.Close();
return array;
}
--
最深的祝福是沒有期限的
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.232.245.127
→
02/07 18:54, , 1F
02/07 18:54, 1F
※ 編輯: reon 來自: 118.232.245.127 (02/07 21:29)
→
02/08 00:58, , 2F
02/08 00:58, 2F
→
02/08 00:59, , 3F
02/08 00:59, 3F
→
02/15 15:16, , 4F
02/15 15:16, 4F