标签: memorystream

有没有办法在 byte[] 和 Stream 之间进行转换而无需复制?

我需要将 byte[] 数组转换为流(例如用于上传文件),然后在代码的另一部分中将流转换回数组(例如用于下载文件)。有没有办法在不复制字节数组的情况下执行这些操作?

这段代码显示 MemoryStream 创建副本。我想用安全性来换取更好的内存性能。

    static void Main(string[] args)
    {
        byte[] array1 = new byte[1024];

        using (MemoryStream s = new MemoryStream(array1))
        {
            byte[] array2 = s.ToArray();
            Console.WriteLine(Object.ReferenceEquals(array1, array2)); // "false"
        }
    }
Run Code Online (Sandbox Code Playgroud)

.net memorystream

1
推荐指数
1
解决办法
176
查看次数

Python 中的内存流

我想将图像文件加载到内存中

在Delphi语言中,有一个名为TMemoryStream的类,您可以使用它来将一些数据加载到内存中,我应该如何在Python语言中使用类似MemoryStream的东西?

python memory delphi memorystream

1
推荐指数
1
解决办法
7170
查看次数

关于在c#中使用内存流的性能问题

我创建了一个项目.很多人会一次使用我的项目.如果任何人遇到错误,那么它将通过使用内存流创建对象来写入文件.如果每个人都得到错误,那么将创建该数量的对象,并且所有对象一次将错误写入同一文件.这有什么问题和性能问题吗?

c# memorystream

0
推荐指数
1
解决办法
2873
查看次数

为什么我得到一个零数组

myByte - 所有字节都为零

a ="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA ="

    var memoryStream = new MemoryStream();
    var binaryFormatter = new BinaryFormatter();
    binaryFormatter.Serialize(memoryStream, m_workspace.ListPlatforms.ToArray());

    myByte = new byte[memoryStream.Length];
    memoryStream.Seek(0, SeekOrigin.Begin);
    memoryStream.Write(myByte, 0, myByte.Length);

    string a = System.Convert.ToBase64String(myByte);
Run Code Online (Sandbox Code Playgroud)

可能是什么原因

c# memorystream bytearray c#-2.0

0
推荐指数
1
解决办法
205
查看次数

将文件附加到电子邮件时使用MemoryStreams作为内容源,C#

所以,我在使用MemoryStream作为内容源来附加文件时遇到了一些麻烦.

现在,我正在从远程Web服务器获取图像,并尝试将它们打包成一个用作日常报告的电子邮件.

我已经完成了提取,解析和图像提取,我已经测试了它的工作原理.我面临的问题是,当我使用MemoryStream作为内容源/内容流创建Attachment对象时,电子邮件包含空白文件/图像.但是,当我指定驻留在硬盘驱动器上的实际文件时,它会毫无问题地附加到邮件中,并且收到的邮件是完美的.

显然,在我附加文件并发送它们之前,我宁愿不必在本地缓存任何图像,因为这会在缓存中产生不必要的开销,然后清除它们.但是,如果需要,我可以把它作为我的最后手段.

我的问题是,如果在创建Attachment对象时使用MemoryStream作为contentStream存在一些已知问题,或者存在我忘记的事情.

谢谢!

c# email memorystream attachment

0
推荐指数
1
解决办法
698
查看次数

反向MemoryStream.ToArray()

我正在获取一个httpwebresponse流(一个flash文件),我想将它保存为二进制文件,然后访问该二进制文件并将其显示为flash.现在,我正在将响应流写入MemoryStream,然后在MemoryStream上调用ToArray().我得到一个方便的字节[].

我该如何扭转这个功能?如何从我生成的byte []中获取flash文件的流?

谢谢!

c# binary serialization memorystream stream

0
推荐指数
1
解决办法
618
查看次数

从文件中将音频写入内存流

我正在尝试将此文件发送到输出流,但无法弄清楚它为什么吐出基本上是空的mp3文件.正如你所看到的那样,我会过早地关闭流,所以我现在已经注释掉了.任何指针赞赏.

using (FileStream mp3file = File.OpenRead(newFile))
                {
                    context.Response.AddHeader("content-transfer-encoding", "binary");
                    context.Response.ContentType = "audio/mpeg";
                    MemoryStream memStream = new MemoryStream();
                    byte[] bytes = new byte[mp3file.Length];
                    memStream.SetLength(mp3file.Length);
                    mp3file.Read(memStream.GetBuffer(), 0, (int)mp3file.Length);
                    memStream.Write(bytes, 0, (int)mp3file.Length);
                    //mp3file.Close();
                    memStream.WriteTo(context.Response.OutputStream);
                    //memStream.Close();

                }
Run Code Online (Sandbox Code Playgroud)

c# memorystream

0
推荐指数
1
解决办法
1917
查看次数

如何解析作为参数传递给方法的CSV

我有一个包含CSV文件内容的字符串.
我需要将这些值提取到我的对象.
我没有从CSV文件中获取CSV,而是将其作为参数(数据)接收.
而在exmple他们使用FILE.CSV来分析数据.
我试图加载MemoryStream但没有运气.

public string methos(string data)
        {
            CsvFileDescription inputFileDescription = new CsvFileDescription
            {
                SeparatorChar = ',',
                FirstLineHasColumnNames = true
            };

            CsvContext cc = new CsvContext();

            MemoryStream mStream = new MemoryStream(System.Text.ASCIIEncoding.Default.GetBytes(data));

            IEnumerable<Data datas=
            cc.Read<Data>(mStream, inputFileDescription);
Run Code Online (Sandbox Code Playgroud)

另外我不知道我是否选择好的框架来解析CSV到自定义对象,但对我来说重要的是值可以有逗号并且框架可以处理它.

c# linq csv memorystream

0
推荐指数
1
解决办法
986
查看次数

使用LZMA对内存流进行解压缩

我有一个远程管理工具,是64位平台的必要更改.我使用Zlib进行压缩和解压缩内存流,但是在做了这个更改之后,当我尝试用64位平台编译我的项目时,Zlib类显示了几个错误,因为Zlib只能用于32位平台.

然后,我在互联网上搜索了一些用于压缩和解压缩内存流的类似类,我发现这个问题讨论的是关于LZMA类,它也可以像我需要的那样制作,类似于Zlib类.

我明白了这个建议:

您将面临的最大问题是您选择使用的库需要您知道要解压缩的文件大小.

所以,我在这里完全知道一些建议,试着解决这个问题.

换句话说,我想知道如何解压缩我的项目的服务器端接收的内存流的大小?

欢迎任何意见或建议.

compression delphi memorystream lzma delphi-xe5

0
推荐指数
1
解决办法
292
查看次数

MemoryStream 抛出类型为 InvalidOperationException 的异常

我希望你能帮助:)

在我的 MVC.net core 2.2 中,调试一个简单的时:

MemoryStream ms = new MemoryStream();
Run Code Online (Sandbox Code Playgroud)

初始化后,它给了我一个:

ReadTimeout: 'ms.ReadTimeout' threw an exception of type 'System.InvalidOperationException'
WriteTimeout: 'ms.WriteTimeout' threw an exception of type 'System.InvalidOperationException'
Run Code Online (Sandbox Code Playgroud)

现在解决方案不会崩溃或任何事情。但是如果我在 Visual Studio 中检查“ms”,它就是这么说的。

我想要做的是通过 SixLabors.ImageSharp 做:

IFormFile file = viewModel.File.Image;

using (Image<Rgba32> image = Image.Load(file.OpenReadStream()))
using (var ms = new MemoryStream())
{
    image.Mutate(x => x.Resize(1000, 1000));
    SixLabors.ImageSharp.Formats.Jpeg.JpegEncoder jpegEncoder = 
        new SixLabors.ImageSharp.Formats.Jpeg.JpegEncoder();
    jpegEncoder.Quality = 80;

    image.Save(ms, jpegEncoder);

    StorageCredentials storageCredentials = new StorageCredentials("Name", "KeyValue");

    // Create cloudstorage account by passing the storagecredentials
    CloudStorageAccount …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc memorystream imagesharp

0
推荐指数
1
解决办法
2374
查看次数