c#高手请进! ( 积分: 100 )

  • 主题发起人 主题发起人 huaiqiuqiu9
  • 开始时间 开始时间
H

huaiqiuqiu9

Unregistered / Unconfirmed
GUEST, unregistred user!
c#中如何创建二进制文件,写入数据,然后读取二进制文件?
如果二进制有三个字节存储一个数字,四个字节存储一个时间,从文件取出后怎样
恢复成现在的格式(如数字 56,时间 1999-11-21 08:50:02 )
 
c#中如何创建二进制文件,写入数据,然后读取二进制文件?
如果二进制有三个字节存储一个数字,四个字节存储一个时间,从文件取出后怎样
恢复成现在的格式(如数字 56,时间 1999-11-21 08:50:02 )
 
Static Void Main()
{
Application.Run(New Form1());
}
// 定义私有变量
Public Stream S;
// 读二进制文件
Public Binaryreader R;
// 写二进制文件
Public Binarywriter W;
// 显示二进制文件内容
Private Void Button1_click(Object Sender, System.Eventargs E)
{
S = File.Openread("Test.Bin");
R = New Binaryreader(S);
Richtextbox1.Text += "数字 56:";
Richtextbox1.Text += R.Readint32().Tostring() + "/N";
Richtextbox1.Text += "时间 1999-11-21 08:50:02 :";
Richtextbox1.Text += R.ReadString()+ "/N";
R.Close();
}
}
// 写二进制文件
S = File.Create("Test.Bin");
W = New Binarywriter(S);
String Str = "这是一个时间 1999-11-21 08:50:02 /N";
W.Write(Str);
Int C = 56;
W.Write(C);
W.Flush();
W.Close();
}
 
但是没有体现字节数量?
好比是 56 和 1999-11-21 08:50:02
格式的内容会循环一大堆,要控制文件大小 例如:
56 1999-11-21 08:50:02 52 1999-12-21 08:50:02 51 1999-15-21 08:50:02
3字节 4字节 3字节 4字节 3字节 4字节
二进制以这样的顺序存了好多数据;
如何恢复

 
四个字节存储一个时间?
DateTime是八个字节的
你这种情况,直接就用Stream好了。
有个BitConverter类,可以将基本类型和byte[]只见进行转换。
 
其实更好的方式是:
你要存的数据可能是个对象中的data member,用[Serialize]属性标记它的类定义,
用序列化和反序列化来存储数据,更简单也更OO.
 
后退
顶部