filestream - 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);
}
解决方案
推荐阅读
- css - 使用 CSS 变量定义 -webkit-background-clip 属性在 Chrome 上不起作用
- bash - 当我运行我的 shell 脚本时,我得到一个语法错误,错误在我的每个循环中,并说 unspected token `;;'
- azure-devops - 在计划发布触发器中设置自定义变量
- android - 尽管 isClickable() 为真,但按钮不可点击
- javascript - 我可以链接不返回 this 的方法吗?
- amazon-web-services - 我应该使用无服务器计算吗
- android-studio - 使用 gradle 组件模型的 Android Studio 2.3.3 自动创建 .aar;Android Studio 3.4.1 现在使用 CMake 或 NDK-Build 不
- javascript - 返回未定义的函数似乎在返回结果之前正在运行 console.log?需要承诺吗?
- mysql - MySql 插入 JDBC
- java - 整数除法java返回一个double?到底是怎么回事?