
public static Boolean WriteTextFile(string content, string filepath,string name)
{
FileStream fs;
StreamWriter sw;
if (!System.IO.Directory.Exists(filepath))
{
DirectoryInfo DirInfo = Directory.CreateDirectory(filepath); //创建目录
DirInfo.Attributes = FileAttributes.Normal;
}
string fullpath = filepath + name + ".txt";
if (File.Exists(fullpath))//验证文件是否存在
{
return false;
}
else
{
fs = new FileStream(fullpath, FileMode.Create, FileAccess.Write);
sw = new StreamWriter(fs,System.Text.Encoding.Default);
sw.WriteLine(content);
sw.Close();
fs.Close();
return true;
}
}
{
FileStream fs;
StreamWriter sw;
if (!System.IO.Directory.Exists(filepath))
{
DirectoryInfo DirInfo = Directory.CreateDirectory(filepath); //创建目录
DirInfo.Attributes = FileAttributes.Normal;
}
string fullpath = filepath + name + ".txt";
if (File.Exists(fullpath))//验证文件是否存在
{
return false;
}
else
{
fs = new FileStream(fullpath, FileMode.Create, FileAccess.Write);
sw = new StreamWriter(fs,System.Text.Encoding.Default);
sw.WriteLine(content);
sw.Close();
fs.Close();
return true;
}
}
在做这个相关工作的时候 还碰到一个问题就是 用一下方法读取中文文本文件时,出现乱码的现象:

public static String ReadTextFile(string filepath)
{
StreamReader objReader = new StreamReader(filepath);
string sLine = "";
ArrayList arrText = new ArrayList();
while (sLine != null)
{
sLine = objReader.ReadLine();
if (sLine != null)
arrText.Add(sLine);
}
objReader.Close();
StringBuilder sb = new StringBuilder();
foreach (string sOutput in arrText)
sb.Append(sOutput);
return sb.ToString();
}
{
StreamReader objReader = new StreamReader(filepath);
string sLine = "";
ArrayList arrText = new ArrayList();
while (sLine != null)
{
sLine = objReader.ReadLine();
if (sLine != null)
arrText.Add(sLine);
}
objReader.Close();
StringBuilder sb = new StringBuilder();
foreach (string sOutput in arrText)
sb.Append(sOutput);
return sb.ToString();
}
查询资料 发现对上面代码中的StreamReader修改一下,如下代码:

public static String ReadTextFile(string filepath)
{
StreamReader objReader = new StreamReader(filepath, System.Text.Encoding.Default);
string sLine = "";
ArrayList arrText = new ArrayList();
while (sLine != null)
{
sLine = objReader.ReadLine();
if (sLine != null)
arrText.Add(sLine);
}
objReader.Close();
StringBuilder sb = new StringBuilder();
foreach (string sOutput in arrText)
sb.Append(sOutput);
return sb.ToString();
}
{
StreamReader objReader = new StreamReader(filepath, System.Text.Encoding.Default);
string sLine = "";
ArrayList arrText = new ArrayList();
while (sLine != null)
{
sLine = objReader.ReadLine();
if (sLine != null)
arrText.Add(sLine);
}
objReader.Close();
StringBuilder sb = new StringBuilder();
foreach (string sOutput in arrText)
sb.Append(sOutput);
return sb.ToString();
}
则没有出现乱码的情况,同理 在写文件的时候,也要这样写:
sw = new StreamWriter(fs,System.Text.Encoding.Default);
如果这样写:
sw = new StreamWriter(fs);
能够写出新的文件,在windows里面打开也和普通文件没有差别,但是在读取的时候会出现认不出中文的情况.这个问题在全文检索系统中困扰了一阵子,就是用sw = new StreamWriter(fs);写进去的文章 检索不出来,可能就是编码不匹配造成的