首页 > 解决方案 > C# StreamWriter, FileStream 写入

问题描述

我现在正在研究霍夫曼算法,我需要在输出文件中写入一些信息(以便解码我所拥有的):字典(字符及其代码)、添加的零数(计数)和字节数组。我试图做这样的事情:

public void WriteInFile()
{
    using (StreamWriter sw = new StreamWriter("lab1output.txt"))
    {
        foreach (KeyValuePair<char, string> pair in Coded)
        {
            sw.WriteLine(pair);
        }
        sw.WriteLine(count);
    }
    using (FileStream fs = new FileStream("lab1output.txt", FileMode.Open))
    {
        byte[] input = bytedList.ToArray();
        fs.Write(input, 0, input.Length);
    }
}

例如,我在文件中写了“你好”。在输出文件中,我希望得到这个:

[h, 01]

[e, 000]

[l, 1]

[o, 001]

6(添加零的数量)

F@(编码字符串)

但我明白了:

F@, 01]

[e, 000]

[l, 1]

[o, 001]

6

请告诉我出了什么问题以及如何解决此问题。谢谢!

编辑: 这是我的字典。

public Dictionary<char, string> Coded = new Dictionary<char, string>();
for (int i = 0; i < infoFromFile.Length; i++)
    {
        encodedSymbol = this.Root.Traverse(infoFromFile[i], new List<bool>()); // Traverse the tree
        if (!Coded.ContainsKey(infoFromFile[i]))
        {
            Coded.Add(infoFromFile[i], null);
            foreach (var e in encodedSymbol)
            {
                Coded[infoFromFile[i]] += ((e ? 1 : 0) + "");
            }
        }
        encodedMessage.AddRange(encodedSymbol);
    }

标签: filestreamstreamwriterhuffman-code

解决方案


推荐阅读