Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在C中加载文件内容时,字节数组将消耗多少内存_C#_File_Memory_Bytearray_.net - Fatal编程技术网

C# 在C中加载文件内容时,字节数组将消耗多少内存

C# 在C中加载文件内容时,字节数组将消耗多少内存,c#,file,memory,bytearray,.net,C#,File,Memory,Bytearray,.net,当我们创建这样的字节数组时: byte[] fileData = System.IO.File.ReadAllBytes("FileName.exe"); 文件的大小会占用内存吗?我认为0字节以上的任何位置 您可能会认为这取决于文件的实际大小?file.ReadAllBytes方法是以一种非常明显的方式实现的。它在文件流上使用using resource acquisition块。然后,它循环遍历文件并将字节放入字节数组中。在.NETFramework4.0中,如果文件超过2GB,它将抛出异常

当我们创建这样的字节数组时:

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

文件的大小会占用内存吗?

我认为0字节以上的任何位置


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

file.ReadAllBytes方法是以一种非常明显的方式实现的。它在文件流上使用using resource acquisition块。然后,它循环遍历文件并将字节放入字节数组中。在.NETFramework4.0中,如果文件超过2GB,它将抛出异常


@这就是我想知道的,因为如果文件大小为100MB,在加载数组后,它是否会额外消耗100MB的内存?@J.Steen在顶部稍高一点?Console.WriteLineSize以字节为单位:{0},大小以KB为单位:{1},fileData.Length,fileData.Length/1024;我刚刚用97KB的文件检查了一下,它显示:字节大小:99328,KB大小:97,另外你可以在32位操作系统上添加4个字节,或者在64位操作系统上添加8个字节作为参考Hanks@Habib,你的回答让我产生了一些不同的想法,我发现这篇文章很有用,我想知道为什么这个问题是“封闭的,不是真正的问题”,虽然有两个答案。