问题标签 [memorystream]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
6687 浏览

.net - MemoryStream 与字节数组

在使用 MemoryStream 时,我发现自己经常将数据复制(因此复制)到一个临时的字节数组中。

我认为这有点浪费资源,因为 MemoryStream 不允许您直接访问底层字节数组。

在这种情况下,MemoryStream 的真正优势是什么?我在某处读到它就像一个内存映射文件。仅在访问时从磁盘获取数据,消耗更少的内存。

真的吗?我不这么认为。也许是 FileStream 的情况?

谢谢你的澄清。

0 投票
1 回答
8224 浏览

c# - 如何使用 P/Invoke 将 MemoryStream 数据传递给非托管 C++ DLL

在以下情况下,我需要您的帮助:

我正在将一些数据从硬件读取到 MemoryStream (C#) 中,我需要将内存中的这些数据传递给在非托管 C++ 中实现的 dll(使用指针 ??)。读取的数据(进入流)非常大(兆字节)。我知道我可以 P/Invoke 这个 dll 但我不确定如何将流数据的指针/引用传递给 C++ API?

我必须承认我很困惑,因为我是 C# 的新手——我是否需要使用 unsafe / fixed 因为数据很大,或者这些与 MemoryStream 对象由 GC 管理无关?一些示例代码/详细描述将非常有帮助。谢谢

非托管 API 的签名:

0 投票
2 回答
28205 浏览

c# - 我需要做 StreamWriter.flush() 吗?

假设这个 C# 代码:

我的问题是:

  1. 我是否需要在循环内使用刷新来保持顺序?
  2. 回国MemoryStream.ToArray()合法吗?我使用using-block 作为约定,我担心它会搞砸。
0 投票
2 回答
1616 浏览

image - 我正在尝试创建一个以字节数组为源的图像对象。我究竟做错了什么?

我正在尝试创建一个以字节数组为源的图像对象。我究竟做错了什么?

当我尝试使用字节数组作为源数据初始化图像对象时,会引发异常。异常显示在我的代码中,如下所示。

我不知道地球上可能出了什么问题。
任何建议将不胜感激。

0 投票
4 回答
7270 浏览

executable - 如何从内存而不是磁盘运行非托管可执行文件

我想在我的 C# 应用程序中嵌入一个命令行实用程序,以便我可以将其字节作为数组获取并运行可执行文件,而无需将其作为单独的文件保存到磁盘(避免将可执行文件存储为单独的文件并避免需要能够在任何地方写入临时文件)。

我找不到仅从其字节流运行可执行文件的方法。Windows 是否要求它位于磁盘上,或者有没有办法从内存中运行它?如果 Windows 要求它在磁盘上,.NET 框架中是否有一种简单的方法来创建某种虚拟驱动器/文件并将文件映射到可执行文件的内存流?

0 投票
3 回答
9053 浏览

c# - 等效于 C# 中 Java 的“ByteBuffer.putType()”

我正在尝试通过从 Java 移植代码来格式化 C# 中的字节数组。在 Java 中,使用方法“buf.putInt(value);”、buf.putShort、buf.putDouble(等等)。但是我不知道如何将其移植到 C#。我已经尝试过 MemoryStream 类,但是没有方法可以将特定类型放在字节数组的末尾。

问题:C# 中 Java 的“ByteBuffer.putType(value)”等价物是什么?谢谢!

0 投票
2 回答
4023 浏览

c# - .NET 中“ByteBuffer.flip”和“ByteBuffer.slice”的等价物是什么?

我需要将代码从 Java 移植到 C#。在 Java 代码中,使用了“ByteBuffer.flip()”和“ByteBuffer.slice”方法,我不知道如何翻译。

我已经阅读了这个问题(相当于 c# 中的 javax.nio.Buffer.flip()),但是虽然给出了答案,但我不知道如何应用它。根据 Tom Hawtin 的说法,我应该在基础数组中“将限制设置为当前位置,然后将位置设置为零”。我不确定如何更改这些值。(如果您能解释基本逻辑,那将对我有很大帮助:)

至于 ByteBuffer.slice,我不知道如何翻译它。

编辑:如果实际代码更清楚,我会发布它:

爪哇:

到目前为止,我在 C#.NET 中的翻译:

谢谢!

编辑:更改b.BaseStream.SetLength(b.BaseStream.Length);b.BaseStream.SetLength(b.BaseStream.Position);,基于 Java 文档。

0 投票
2 回答
3497 浏览

c# - .Net MemoryStream 关​​闭问题

对于 .Net MemoryStream 对象实例,是否需要在使用后显式关闭它?还是不需要关闭?哪些是最佳实践?

我正在使用 VSTS2008 + .Net 3.5 + C#。

0 投票
3 回答
4703 浏览

c# - 从 MemoryStream 执行程序

如何执行 MemoryStream 中的程序,这样我就不必先将其保存到硬盘上。该文件可能不会临时保存到硬盘。该程序必须在内存中 100% 正常运行。

现在 MemoryStream 中的所有 100% 工作程序(在 RAM 上),我可以执行该程序吗?非常感谢

0 投票
1 回答
15991 浏览

c# - C# 3.0 使用 MemoryStream 将 itextsharp pdf 保存到数据库

我正在尝试将由 itextsharp 生成的 pdf 文件保存到数据库。但是,到目前为止,我还没有成功。

我正在使用 Linq 到 sql。

这是代码:

它不会引发错误,但不会在数据库中保存任何内容。DB 字段是“图像”字段类型。我还使用此代码即时渲染 pdf(我切断了 byte[] pdfDone... 并返回 MemoryStream)。

我不知道可能出了什么问题...在调试时,我还可以看到 byte[] pdfDone 有一个值(类似于 3487),但没有任何内容保存到 DB。

提前致谢!