c# - 从 C# NET 3.5 中的 byte[] 保存文件

标签 c# .net-3.5 compression zlib

我的 TCP 客户端在一个数据包中接收到一个图像。图像是用 zlib 压缩的。任务是解压缩图像并将其放在表单上。

我打算将压缩后的图片保存到当前目录,解压后加载到窗体上。

第一个问题是保存文件(压缩)。zlib 可以解压保存它。

下面的代码加载压缩文件并在解压后保存。

    private void decompressFile(string inFile, string outFile)
    {
        System.IO.FileStream outFileStream = new System.IO.FileStream(outFile, System.IO.FileMode.Create);
        zlib.ZOutputStream outZStream = new zlib.ZOutputStream(outFileStream);
        System.IO.FileStream inFileStream = new System.IO.FileStream(inFile, System.IO.FileMode.Open);          
        try
        {
            CopyStream(inFileStream, outZStream);
        }
        finally
        {
            outZStream.Close();
            outFileStream.Close();
            inFileStream.Close();
        }
    }

    public static void CopyStream(System.IO.Stream input, System.IO.Stream output)
    {
        byte[] buffer = new byte[2000];
        int len;
        while ((len = input.Read(buffer, 0, 2000)) > 0)
        {
            output.Write(buffer, 0, len);
        }
        output.Flush();
    }

如何将 byte[] 数组直接传递给那个函数? 我打算将其保存为压缩文件,然后使用压缩文件的位置调用该函数,但我既不知道如何从 byte[] 数组保存文件,也不知道如何传递 byte[] 数组作为输入文件。

我们将不胜感激任何帮助。

谢谢。

最佳答案

使用 static void System.IO.File.WriteAllBytes(string path, byte[] bytes) 方法。

byte[] buffer = new byte[200];
File.WriteAllBytes(@"c:\data.dmp", buffer);

关于c# - 从 C# NET 3.5 中的 byte[] 保存文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/733832/

相关文章:

c# - 为什么我在此 LINQ 查询中得到 'cannot convert type ' IEnumerable<myType >' to ' myType'?

java - GZIP解压代码抛出异常

C# 方形拆分

c# - 尝试/捕获 Image.FromStream() 而不捕获 using 语句的其余部分?

c# - 使用 for 循环将自定义对象分配给数组?

.net - 如何使用 DateTime.TryParse 将日期从 yyyyMMdd 格式转换为 mm-dd-yyyy 格式

c# - 鉴于我们只想要第一条记录,在 linq 查询中选择之前排序是否更好?

c# - 匹配来自两个列表(或数组)的项目

stream - 比特流的压缩算法

c# - C#/.Net 的压缩程序集?