private void 保存sToolStripMenuItem_Click(object sender, EventArgs e)
{
//结果点了取消,则什么也不做,返回。
if (sfd.ShowDialog() == DialogResult.Cancel)
{
return;
}
//定义一个筛选器,用来筛选保存文件的格式
//sfd.Filter = " *.txt|*.txt|*.doc|*.doc|所有文件格式(*.*)|(*.*)";
//sfd.FilterIndex1 = 1;
//创建一个文件流,指向的是一个要保存的文件名
FileStream fssave = File.Create(sfd.FileName);
//定义一个编码方式
Encoding ed = Encoding.Default;
//文件流是对字节的操作,所以要把保存的内容转换成字节,转换的时候要用到编码的方式。
byte[] b = ed.GetBytes(richTextBox1.Text);
//通过流指向的文件的路径来保存
fssave.Write(b,0,b.Length);
fssave.Flush();
fssave.Close();
}问题1:以上代码中的筛选器为什么不能起作用呢?
问题2:保存的时候,写入的字节[fssave.Write(b,0,b.Length)],可为什么我打开txt的时候看到的是中文字符串呢?
{
//结果点了取消,则什么也不做,返回。
if (sfd.ShowDialog() == DialogResult.Cancel)
{
return;
}
//定义一个筛选器,用来筛选保存文件的格式
//sfd.Filter = " *.txt|*.txt|*.doc|*.doc|所有文件格式(*.*)|(*.*)";
//sfd.FilterIndex1 = 1;
//创建一个文件流,指向的是一个要保存的文件名
FileStream fssave = File.Create(sfd.FileName);
//定义一个编码方式
Encoding ed = Encoding.Default;
//文件流是对字节的操作,所以要把保存的内容转换成字节,转换的时候要用到编码的方式。
byte[] b = ed.GetBytes(richTextBox1.Text);
//通过流指向的文件的路径来保存
fssave.Write(b,0,b.Length);
fssave.Flush();
fssave.Close();
}问题1:以上代码中的筛选器为什么不能起作用呢?
问题2:保存的时候,写入的字节[fssave.Write(b,0,b.Length)],可为什么我打开txt的时候看到的是中文字符串呢?
//sfd.FilterIndex1 = 1; 要放在sfd.ShowDialog() 前面
问题2:保存的时候,写入的字节[fssave.Write(b,0,b.Length)],可为什么我打开txt的时候看到的是中文字符串呢?你写进去的是被 Encoding.Default转换手的byte 系统根据你的BYTE显示成字符
没看出来什么不正确的.