写文件时,操作StringWriter出现问题!
ofei 2006-08-06 02:18:35 翻开自己不少天前写过的小程序,完善了下。竟然出现了些小问题。
我的程序的其中的一个方法功能是把文本写入到一个StringWriter实例中,然后再将StringWriter实例中的文本写入到文件。
由于需要将StringWriter实例中的文本"value__"删除,导致写出来的文件有一小段文本有重复。
觉得很奇怪,不知道有没有人碰到这问题。
期望写出的文件的内容如下:
namespace System.IO
{
/// <summary><para> Defines constants used to specify the level of file access being requested.</para></summary>
[CLSCompliantAttribute(true)]
public enum FileAccess
{
/// <summary><para> Specifies read access for a file.</para></summary>
Read = 0x1,
/// <summary><para>
/// Specifies read and write access for a file.</para></summary>
ReadWrite = Read | Write
/// <summary><para> Specifies write access for
/// a file.</para></summary>
Write = 0x2
}
}
}
但是却输出如下:
namespace System.IO
{
/// <summary><para> Defines constants used to specify the level of file access being requested.</para></summary>
[CLSCompliantAttribute(true)]
public enum FileAccess
{
/// <summary><para> Specifies read access for a file.</para></summary>
Read = 0x1,
/// <summary><para>
/// Specifies read and write access for a file.</para></summary>
ReadWrite = Read | Write
/// <summary><para> Specifies write access for
/// a file.</para></summary>
Write = 0x2
}
/// a file.</para></summary>
Write = 0x2
}
}
重复文本如下:
/// a file.</para></summary>
Write = 0x2
其他不操作StringWriter(操作指将StringWriter实例中的文本"value__"删除)的文件正常。
写文件的代码片段如下:
FileStream fileWriter = new FileStream(createdTypeFilePath, FileMode.OpenOrCreate, FileAccess.ReadWrite);
StreamWriter streamWriter = new StreamWriter(fileWriter, System.Text.Encoding.Default, 1024);
StringBuilder fileBuilder = new StringBuilder( );
StringWriter stringWriter = new StringWriter( fileBuilder );
//其他代码是往stringWriter里写入文本以及或替换文本
string fileContent = tempWriter.ToString( );
stringWriter.Close( );
stringWriter.Dispose( );
streamWriter.WriteLine( fileContent );
streamWriter.Close();
streamWriter.Dispose();
fileWriter.Close( );
fileWriter.Dispose( );
跟踪的时候stringWriter的内容符合期望,但写出来的文件就出了问题了。