看板 C_Sharp 關於我們 聯絡資訊
※ 引述《phe (hmmm)》之銘言: : 請問各位....我有一個大約400MB的檔案, 想把他一次讀進來 : StreamReader sr = new StreamReader("file"); : StringBuilder sb = new StringBuilder(); : string buffer; : while((buffer = sr.ReadLine() != null) : { : sb.Append(buffer); : } : 因為我的記憶體有1.25G, 所以依據我的想法這樣應該是可以讀完才對 : 但是程式會在執行到一半時就丟出OutOfMemoryException, : 可是我檢查windows工作管理員發現可用的實體記憶體還有400多 : 請問這是為什麼? : (當然我也沒一定非要用這方法寫, 只是純粹很好奇位啥記憶體沒用完就會exception產生) 這個嘛... 你只能為一個process取得最大的"連續的"記憶體. 如果有一個process佔用的記憶體區域橫空欄在主記憶體的中間, 你是可能怎樣 也拿不到這樣大的記憶區塊啦... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.73.76.102