我想在WinForm中編寫和讀取二進制文件。我以爲我這樣做了,但是當我嘗試讀取文件時,我只能得到寫入文件的新數字(每5秒產生一個隨機數字),該文件不保留以前的數字。 我做了什麼:爲什麼我不能寫一個二進制文件?
private void timer1_Tick(object sender, EventArgs e)
{
string path = @"C:\Test\test.dat";
lbl1.Text = string.Format("{0:0.0}", -6 + rand.NextDouble() * 17);
double temp = Convert.ToDouble(lbl1.Text);
try
{
if (!File.Exists(path))
{
lock (sync)
{
FileStream outf = new FileStream(path, FileMode.CreateNew, FileAccess.Write);
BinaryWriter bw = new BinaryWriter(outf);
bw.Write(temp);
bw.Close();
}
}
else if (File.Exists(path))
{
lock (synk)
{
FileStream outf1 = new FileStream(path, FileMode.Create, FileAccess.Write);
BinaryWriter bw1 = new BinaryWriter(outf1);
bw1.Write(temp);
bw1.Flush();
bw1.Close();
}
}
}
catch (System.IO.FileNotFoundException ioe)
{
MessageBox.Show(ioe.Message);
}
我做錯了什麼?有沒有人可以幫助我?提前致謝。
爲什麼flush方法? – Steve 2014-12-04 22:12:52
我得到相同的結果。不斷只是最新的數字。 – Steve 2014-12-04 22:20:14
@Steve,因爲它在原始代碼中。我只是刪除了無關的if塊。 – 2014-12-04 22:32:50