读书人

BinaryWriter、BinaryReader 为何得不

发布时间: 2012-02-12 17:16:34 作者: rapoo

BinaryWriter、BinaryReader 为何得不到相应的数据值??
我是按照教程来得有很多东西,都没法实现!

如:插入数据 name:11 age:22 phone:33 address:44
得到的却是: 11 11 11 11
还有:读写器 pw 为什么没有:WriteString 方法呢??


struct Record // 通讯录的记录格式
{
public string name;
public UInt16 age;
public string phone;
public string address;
};

class Phone
{
FileStream f_srm;
string s_filename;
Record m_record; // 定义一个变量结构集!(可存放了多个变量值)

public Phone(string s_name)
{
s_filename = s_name;
}
//--


public int Open()
{
Console.WriteLine( "1: List Record ");
Console.WriteLine( "2: Add New Record ");
Console.WriteLine( "3: Erase Record ");
Console.WriteLine( "0: Exit ");
int i = Console.Read() - '0 ';
return i;
}
//-- 添加纪录
public void AddNew()
{
try
{


f_srm = new FileStream(s_filename,FileMode.OpenOrCreate);
}
catch
{
Console.WriteLine( "Open PhoneBook Error! ");
return;
}
BinaryWriter pw = new BinaryWriter(f_srm);
pw.Seek(0,SeekOrigin.End);
Console.Write( "Name: ");
Console.ReadLine();
m_record.name = Console.ReadLine();


pw.Write(m_record.name);
// 必须一个轮回
reenter: // 再进入
Console.Write( "Age: ");
string s_temp = Console.ReadLine();
try
{
m_record.age = Convert.ToUInt16(s_temp);
}
catch
{
Console.WriteLine( "你输入的年龄非法! ");


goto reenter;
}
//
pw.Write(m_record.age);
Console.Write( "Phone Number: ");
m_record.phone = Console.ReadLine();
pw.Write(m_record.phone);
Console.Write( "Address: ");
m_record.address = Console.ReadLine();
pw.Write(m_record.address);
this.f_srm.Close();
}
//-- 列出纪录


public void List()
{
try
{
f_srm = new FileStream(s_filename,FileMode.Open);
}
catch
{
Console.WriteLine( "Open PhoneBook Error! ");
return;
}
BinaryReader pr = new BinaryReader(f_srm);
Console.WriteLine( "Name Age PhoneNum Address ");


Console.WriteLine( "************************* ");
while(true)
{
try
{
m_record.name = pr.ReadString();
m_record.age = pr.ReadUInt16();
m_record.phone = pr.ReadString();
m_record.address = pr.ReadString();
}


catch(Exception e)
{
Console.WriteLine(e.ToString());
return;

}
Console.WriteLine( "{0,-9}{0,-6}{0,-18}{0,3} ",m_record.name,m_record.age,m_record.phone,m_record.address);
}
f_srm.Close();
}
//-- 清空纪录

[解决办法]
Console.WriteLine( "{0,-9}{1,-6}{2,-18}{3,3} ", m_record.name, m_record.age, m_record.phone, m_record.address);

读书人网 >C#

热点推荐