【问题标题】:Correct terminology for streaming a file into bytes and back将文件流式传输到字节并返回的正确术语
【发布时间】:2009-04-26 21:24:57
【问题描述】:

我有以下方法:

    public static byte[] ConvertFileToBytes(string filePath)
    {
        var fInfo = new FileInfo(filePath);
        var numBytes = fInfo.Length;
        var dLen = Convert.ToDouble(fInfo.Length / 1000000);

        var fStream = new FileStream(filePath, FileMode.Open, FileAccess.Read);
        var br = new BinaryReader(fStream);

        var data = br.ReadBytes((int)numBytes);
        br.Close();

        fStream.Close();
        fStream.Dispose();

        return data;
    }

    public static void ConvertBytesToFile(byte[] file, string filePath)
    {
        var ms = new MemoryStream(file);

        var fs = new FileStream(filePath, FileMode.Create);

        ms.WriteTo(fs);

        ms.Close();
        fs.Close();
        fs.Dispose();
    }

这些方法的正确名称是什么?(因为 ConvertXXXtoYYY 只是没有在实用程序库中剪切它)

【问题讨论】:

    标签: c# file streaming naming


    【解决方案1】:

    【讨论】:

    • ...哈哈!我每天都在继续学习大量新事物。干杯伙伴!
    • 不想成为一个混蛋,但我已经看过几次了。这个答案没有回答提出的实际问题。不过这是一个很好的建议。问题是关于他的方法签名而不是实现。会认为 SO 会希望保持这些一致。
    • @Deviant:我认为这是因为我推断正确的名称应该是“Read”和“Write”。由于我们专门处理文件,“(de)serialize”太通用了。 “元帅”也是如此,我认为它的内涵也略有不同。
    【解决方案2】:

    通常使用的术语是“序列化”和“反序列化”(或有时“编组”和“解组”)。

    【讨论】:

    • 对我来说,“序列化”和“编组”都意味着您正在处理某种需要特殊逻辑才能将其转换为字节的数据结构 - 但我们已经有了字节,它们只需要写入一个文件(也就是一堆字节)。
    【解决方案3】:

    编组/解组可能是合适的术语。

    http://en.wikipedia.org/wiki/Marshalling_(computer_science)

    【讨论】:

    • 嗯,那么编组和序列化有什么区别?
    • 传统上在处理 XML 时使用编组,在处理内存数据结构时使用序列化。两者都不适用于将字节直接写入文件的简单任务。
    【解决方案4】:

    在 C++ 中,它们被称为读写。

    【讨论】:

      【解决方案5】:

      WriteAllBytes 和 ReadAllBytes 是一个很好的建议,但要回答您的问题......

      Save() 是重命名 ConvertToFile() 和 Object.CreateFromFile() 的好选择。

      【讨论】:

        猜你喜欢
        • 2019-10-06
        • 1970-01-01
        • 2018-06-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-12-21
        相关资源
        最近更新 更多