(一)数据存入文本文件并读取的代码:
public void StorageData( Contact ContactInfo)
{
string path = @"c:/TelBook/TelBook.txt"; //需要加@表示路径
StreamReader sr = File.OpenText(path); //using System.IO;
string input = sr.ReadToEnd();
string StrCon = input + ContactInfo.ToString();
sr.Close(); //关掉文本文件,结束此进程
StreamWriter sw = new StreamWriter(path);
sw.WriteLine(StrCon);
sw.Close(); //要是不加sw.Close(),数据不能存入文本文件。
}
(二)创建目录和文件
创建目录:
string DirPath = @"c:/TelBook";
System.IO.
Directory.CreateDirectory(DirPath);
判断是否存在:
if (!System.IO.Directory.Exists(DirPath)) {...}
创建文件:
string FilePath = @"c:/TelBook/TelBook.txt";
using (System.IO.File.CreateText(FilePath))
{
}
这里的using的用法:
定义一个范围,将在此范围之外释放一个或多个对象。
using 语句允许程序员指定使用资源的对象应当何时释放资源。为 using 语句提供的对象必须实现 IDisposable 接口。此接口提供了 Dispose 方法,该方法将释放此对象的资源。
(三)文字输出
StringBuilder help = new StringBuilder();
help.Append("+--------------------------------------------------------+/n");
help.Append("|/"ID/":Only allow digital value,<=3 chars |/n");
help.Append("+--------------------------------------------------------+/n");
(四)StringBuilder和String的区别
String在进行运算时(如赋值,拼接等)会产生一个新的实例;
而StringBuilder类的原理是首先在内存中开辟一定大小的内存空间,当对此StringBuilder类对象进行更改时,如果内存空间大小不够,会对此内存空间进行扩充,而不是重新创建一个对象;
这样如果对一个字符串对象进行频繁操作的时候,不会造成过多的内存浪费。