[英]Write to a binary file with C#
我正在尝试加密字符串并将其写入二进制文件。 我想反过来做。 这是我的代码,但是不起作用。
FileStream stream = new FileStream(saveFileDialog1.OpenFile().ToString(), FileMode.Create);
BinaryWriter writer = new BinaryWriter(stream);
String temp = "";
serialList.ForEach(delegate(record p)
{
temp = String.Format("{0},{1}#", p.serial, p.option);
byte[] dataB = System.Text.Encoding.Unicode.GetBytes(String.Format("{0},{1}#", p.serial, p.option));
byte[] enc = Encrypt(dataB, "gio!");
writer.Write(enc);
});
writer.Write('1');
writer.Close();
stream.Close();
有什么问题吗?
SaveFileDialog.OpenFile
已经返回您的Stream对象。 您不需要奇怪的.ToString()
调用,它可能会也可能不会为您提供文件名/完整的文件路径。
本质上,您的代码创建2个流:一个在FileOpenDialog中指定的位置,另一个在相对路径中的文件名等于“ Stream.ToString()”的结果的某个位置。 第一流(您可能正在查看的流)将为空,因为您没有向其中写入任何内容。
注意:请考虑使用using(...)
而不是手动.Close
调用,因为它可以创建更安全的代码(在发生异常的情况下,您不会丢掉流)。
在关闭流之前,像这样冲洗它。
writer.Flush();
writer.Close();
另外,您可以在开始写入之前将writer.AutoFlush
设置为true,但这可能会稍微慢一些。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.