在我的博客中,我讲到过用streamwriter对文件进行保存,此处,我要提到另外一种方法writealllines保存文件。经过对比发现,writealllines该方法写入字符数组换行显示,且文件不存在,则创建,存在则覆盖。个人觉得相对于比较方便;streamwriter既有换行显示,也可以不换行显示;两者的共同点是:首先,通过数组转换为字符串,而writealllines是将字符串转换为字符数组写入文本,streamwriter是直接将字符串写入文本,且streamwriter没有文件存在则覆盖的功能,所以需要以下代码,即:
if (File.Exists(path_A))
File.Delete(path_A);
if (File.Exists(path_L))
File.Delete(path_L);
writealllines方法:
private void button1_Click(object sender, EventArgs e)
{
saveFileDialog1.Filter = "文本文件(*.txt)|*.txt"; //自动打开对话框
saveFileDialog1.ShowDialog();
string filename = saveFileDialog1.FileName;
//string[] sw ={ "thank you","you"};
double[] sw=new double[3];
sw[0] = 1.2; sw[1] = 2.6; sw[2] = 3.9;
List<String> list = new List<string>(); //第一步
list.Add(" 标题 "); // 直接用add加内容
list.Add("首先");
for (int i = 0; i < 2; i++)
{
String s = "";
s += sw[i].ToString() + " "; //数组要转换为字符串
list.Add(s);
}
list.Add("结束");
//string s = "";
//s = sw.ToString();
System.IO.File.WriteAllLines(@filename, list.ToArray () , Encoding.Default); //使用该模式writealllines进行保存,一定要用list.toarray()转换为字符数组
}
我用了streamwriter进行对比,如下
private void button2_Click(object sender, EventArgs e)
{
saveFileDialog1.Filter = "文本文件(*.txt)|*.txt"; //前面打开文本框的代码相同
saveFileDialog1.ShowDialog();
string filename = saveFileDialog1.FileName;
StreamWriter sr = new StreamWriter(filename ,true );
string sw;
sw = "";
sw += string.Format("{0,-30}", "标题");
sw += string.Format("{0,0}", "首先");
sr.WriteLine(sw);
double[] sw2 = new double[3];
sw2[0] = 1.2; sw2[1] = 2.6; sw2[2] = 3.9;
for (int i = 0; i < 2; i++)
{
String s = "";
s += sw2[i].ToString("0.0") + " ";
sr.WriteLine (s);
}
sr.Close();
}
输出格式:
for (int i = 1; i <= tl.Ncontrol; i++)
{
s = "";
s += String.Format("{0, -10}", control[i - 1, 0].ToString()); //输出格式
for (int j = 1; j < 4; j++)
{
s += String.Format("{0, -10}", control[i - 1, j].ToString("0.0"));//输出格式
}
list.Add(s);
}
推荐代码:
我的手机 2019/5/19 16:00:08
https://www.cnblogs.com/researcher/p/4989395.html
我的手机 2019/5/19 16:00:27
https://blog.youkuaiyun.com/BYH371256/article/details/85272203