【问题标题】:How to save string contains of 1 and 0 to bin file? [duplicate]如何将包含 1 和 0 的字符串保存到 bin 文件中? [复制]
【发布时间】:2015-05-07 15:21:17
【问题描述】:

您好,我有字符串 str="1010101010101010" 来自 file.txt,其中正好包含 16 个符号:0 和 1。这只是一个示例,str 可以有超过 16 个符号:8,16,24,32,40 ...我想把它保存到file.bin。保存后 file.bin 的大小必须为 2B(在此示例中)。 我尝试使用

File.WriteAllText(path, str);

但我的文件比我想要的要大。有人可以帮我吗?

【问题讨论】:

  • 当然。你必须一次走 8 位,解析数字(手动或使用Convert.ToByte(substr, 2),然后写下你得到的字节。你正在尝试写一个二进制文件,所以这应该不足为奇编写文本文件不起作用:)
  • @AlexK。我认为他只是意味着他可以在输出上有多个字节 - 2、4、6...但是输入字符串仍然只是一串二进制数字。

标签: c# bin


【解决方案1】:

你可以试试这样的。这适用于您发布的 16 位。如果您有更多,您可能希望一次读取 32 位并转换。但这应该可以帮助您入门。

void Main()
{
    string path = @"g:\test\file.bin";
    string str="1010101010101010";

    //Convert string with 16 binary digits to a short (2 bytes)
    short converted = Convert.ToInt16(str, 2);

    //Convert the short to a byte array
    byte[] bytes = BitConverter.GetBytes(converted);

    //Write the byte array to a file
    using (var fileOut = new System.IO.FileStream(path, FileMode.OpenOrCreate, FileAccess.Write, FileShare.None))
    {
        fileOut.Write(bytes, 0, bytes.Length);
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-12
    • 1970-01-01
    • 2014-11-24
    相关资源
    最近更新 更多