有文件A.txt内容如下:
1
2
3
4
5
6
7
8
9
0
private int WriteToLedFile(string txt,out string errMsg)
{
errMsg = "成功!";
FileStream fsWriter = null;
StreamWriter writer = null;
try
{
fsWriter = new FileStream(@"A.txt",FileMode.OpenOrCreate,FileAccess.ReadWrite,FileShare.ReadWrite);
writer = new StreamWriter(fsWriter,System.Text.Encoding.GetEncoding("gb2312"));
writer.Write(txt);
writer.Close();
return 0;
}
catch(Exception e)
{
errMsg = e.Message;
return -1;
}
finally
{
fsWriter = null;
writer = null;
}
}
当只写1行数据时(如txt="Hollow Word!")A.txt如下
Hollow Word!"
2
3
4
5
6
7
8
9
0
问题:如何使写1行数据时(如txt="Hollow Word!")A.txt内容为
Hollow Word!

解决方案 »

  1.   

    fsWriter = new FileStream(@"A.txt",FileMode.Create,FileAccess.ReadWrite,FileShare.ReadWrite);
      

  2.   

    File.WriteAllText(@"A.txt", txt);
      

  3.   

    fsWriter = new FileStream(@"A.txt",FileMode.OpenOrCreate,FileAccess.ReadWrite,FileShare.ReadWrite);
    找找其他的
      

  4.   

    FileMode枚举算则Truncate看看?
    笔误Hello?Hollow?
      

  5.   

    http://msdn.microsoft.com/zh-cn/library/system.io.filemode.aspx
    .NET Framework 类库
    FileMode 枚举指定操作系统打开文件的方式。FileMode.Create
    指定操作系统应创建新文件。如果文件已存在,它将被覆盖。如果文件不存在,则使用 CreateNew;否则使用 Truncate。 
      

  6.   

    建议使用 FileMode.Create 而不是 FileMode.Truncate,因为后者用于打开现有文件,要求文件已存在,而前者可以适用于所有情形:FileMode.Truncate
    指定操作系统应打开现有文件。文件一旦打开,就将被截断为零字节大小。试图从使用 Truncate 打开的文件中进行读取将导致异常。 
      

  7.   

    用File.Delete()解决了,不过我一会试试Create,谢谢大家
      

  8.   

    用create 就可以了,清空原来的