【问题标题】:how much memory would a byte array consume when loaded with a file contens in C# [closed]在 C# 中加载文件内容时,字节数组会消耗多少内存 [关闭]
【发布时间】:2012-09-12 14:48:02
【问题描述】:

当我们像这样创建一个字节数组时:

byte[] fileData = System.IO.File.ReadAllBytes("FileName.exe");

文件大小会占用内存吗?

【问题讨论】:

  • Console.WriteLine("Size in bytes: {0} , Size in KB: {1}", fileData.Length, fileData.Length / 1024);我刚刚检查了它,文件大小为97KB,它显示:Size in bytes: 99328 , Size in KB: 97,另外您可以在32位操作系统上添加4个字节或在64位操作系统上添加8个字节以供参考
  • 感谢@Habib,你的回答让我产生了一些不同的想法,我发现这篇文章很有用link
  • 我想知道为什么这个问题“不是真正的问题”,尽管它有两个答案。

标签: c# file memory bytearray .net


【解决方案1】:

File.ReadAllBytes 方法以非常明显的方式实现。它使用 FileStream 上的 using 资源获取块。然后,它遍历文件并将字节放入字节数组中。在 .NET Framework 4.0 中,如果文件超过 2 GB 会抛出异常。

http://www.dotnetperls.com/file-readallbytes

【讨论】:

    【解决方案2】:

    我认为从 0 字节以上的任何地方...

    您可能会认为这取决于文件的实际大小?

    【讨论】:

    • @J.Steen 这就是我想知道的,因为如果文件大小为 100MB,在加载数组后,它会额外消耗 100MB 的内存吗?
    • @J.Steen 有点过头了?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-01
    • 1970-01-01
    • 2018-11-07
    • 2019-04-14
    • 1970-01-01
    • 2017-10-03
    相关资源
    最近更新 更多