使用C#写入二进制文件

Ale*_*ruC 0 .net 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();
Run Code Online (Sandbox Code Playgroud)

这有什么问题?

Ale*_*kov 6

SaveFileDialog.OpenFile已经返回Stream对象.您不需要.ToString()可能会或可能不会给您文件名/完整文件路径的奇怪调用.

基本上你的代码创建了2个流:一个在FileOpenDialog中指定的位置,另一个 - 在相对路径的某个地方,文件名等于"Stream.ToString()"的结果.第一个流(你可能看到的那个)将是空的,因为你没有写任何东西.

注意:考虑使用using(...)而不是手动.Close调用,因为它会创建更安全的代码(如果出现异常,您不会将流保留为非处理状态).