我在使用序列化将数据读入和写入文件记事本时遇到问题 基本上就是登录和注册 我会在这里给我的代码 这是注册表单的一部分:
public partial class formSignUp : Form
{
List<data> game = new List<data>();
data dt = new data();
public formSignUp()
{
InitializeComponent();
}
private void write()
{
try
{
using (Stream stream = File.OpenWrite("game.txt"))
{
BinaryFormatter bin = new BinaryFormatter();
bin.Serialize(stream, dt);
}
}
catch (IOException)
{
}
}
private void butRegister_Click(object sender, EventArgs e)
{
write();
dt = new data(tbUName.Text, tbPass1.Text);
game.Add(dt);
}
}
然后这是类数据代码:
[Serializable()]
class data
{
private string username;
private string password;
public string Username
{
get { return username; }
set { username = value; }
}
public string Password
{
get { return password; }
set { password = value; }
}
public data(string username, string password)
{
this.username = username;
this.password = password;
}
public data()
{
}
}
我将文件记事本放在文件夹“bin”中,名称为“game.txt”
问题是,每当我调用“write()”时,写入文件“game.txt”的字符就是如此奇怪的字符。到目前为止我得到了:
ÿÿÿÿ <Login, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
Login.data usernamepassword
任何人都可以帮助我吗? 非常感谢提前 此致
答案 0 :(得分:1)
那是因为您正在使用BinaryFormatter,它会输出二进制数据。您应该使用其中一个文本格式化程序。有SoapFormatter
和DataContractJsonSerialized
,但它可能不适合您。