Gian Franco Alexis Poma Vidal Asked: 2020-08-15 13:23:27 +0800 CST 2020-08-15 13:23:27 +0800 CST 2020-08-15 13:23:27 +0800 CST C# 中的 MemoryStream 是什么? 772 我一直在对这门课进行一些研究,它说它将所有内容都保存在内存中……但是在什么内存中?我认为它是 RAM,但我继续阅读,它说临时缓冲等。我希望你帮我解决这个理论上的疑问, c# 2 Answers Voted Best Answer jtaborga 2020-08-15T13:34:13+08:002020-08-15T13:34:13+08:00 MemoryStream类创建使用 RAM 作为备份存储而不是硬盘驱动器或网络的数据流。该类MemoryStream将存储的信息封装为一个无符号字节数组 ( array),该数组在对象创建后初始化MemoryStream,或者array也可以创建为空。封装的信息直接在 RAM 存储器中访问。内存流 ( MemoryStream) 可以减少应用程序中对Buffers temporales文件的使用需求。 Andres Acosta 2020-08-15T13:36:32+08:002020-08-15T13:36:32+08:00 您好,我把这些信息留给您,希望对您有所帮助: 即使存在异常(最有可能在文件 I/O 上),实际上也应该删除流 - 因此要编写memorystream,您可以使用: using (FileStream file = new FileStream("file.bin", FileMode.Create, FileAccess.Write)) { memorystream.WriteTo(file); } 再读一遍: using (FileStream file = new FileStream("file.bin", FileMode.Open, FileAccess.Read)) { byte[] bytes = new byte[file.Length]; file.Read(bytes, 0, (int)file.Length); ms.Write(bytes, 0, (int)file.Length); } 如果文件很大,那么值得注意的是,读取操作将使用两倍于文件总大小的内存。对此的一种解决方案是从字节数组创建内存流 - 下面的代码假设不是,然后写入该流。 memorystream ms = new memorystream(bytes, writable: false); 问候。
MemoryStream类创建使用 RAM 作为备份存储而不是硬盘驱动器或网络的数据流。该类
MemoryStream
将存储的信息封装为一个无符号字节数组 (array
),该数组在对象创建后初始化MemoryStream
,或者array
也可以创建为空。封装的信息直接在 RAM 存储器中访问。内存流 (MemoryStream
) 可以减少应用程序中对Buffers temporales
文件的使用需求。您好,我把这些信息留给您,希望对您有所帮助:
即使存在异常(最有可能在文件 I/O 上),实际上也应该删除流 - 因此要编写memorystream,您可以使用:
再读一遍:
如果文件很大,那么值得注意的是,读取操作将使用两倍于文件总大小的内存。对此的一种解决方案是从字节数组创建内存流 - 下面的代码假设不是,然后写入该流。
问候。