[英]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.