下面的示例将文本追加到文件。 using System; using System.IO;class Test { public static void Main() { string path = @"c:\temp\MyTest.txt"; // This text is added only once to the file. if (!File.Exists(path)) { // Create a file to write to. using (StreamWriter sw = File.CreateText(path)) { sw.WriteLine("Hello"); sw.WriteLine("And"); sw.WriteLine("Welcome"); } } // This text is always added, making the file longer over time // if it is not deleted. using (StreamWriter sw = File.AppendText(path)) { sw.WriteLine("This"); sw.WriteLine("is Extra"); sw.WriteLine("Text"); } // Open the file to read from. using (StreamReader sr = File.OpenText(path)) { string s = ""; while ((s = sr.ReadLine()) != null) { Console.WriteLine(s); } } } }
但是我要追加文件流的时候,却不行 fi = new FileInfo(strPath); fStream = fi.Open(FileMode.OpenOrCreate, FileAccess.Write, FileShare.Read); sw = new StreamWriter(fStream,System.Text.Encoding.GetEncoding("Gb2312")); sw = fi.AppendText();这时候报错,说文件流正在被一个进程读取.
fi = new FileInfo(strPath); fStream = fi.Open(FileMode.OpenOrCreate, FileAccess.Write, FileShare.Read); sw = new StreamWriter(fStream,System.Text.Encoding.GetEncoding("Gb2312")); sw = fi.AppendText(); 用一句话就可以了 StreamWriter sw = File.AppendText(strPath); 上面的4句去掉!
using System;
using System.IO;class Test
{
public static void Main()
{
string path = @"c:\temp\MyTest.txt";
// This text is added only once to the file.
if (!File.Exists(path))
{
// Create a file to write to.
using (StreamWriter sw = File.CreateText(path))
{
sw.WriteLine("Hello");
sw.WriteLine("And");
sw.WriteLine("Welcome");
}
} // This text is always added, making the file longer over time
// if it is not deleted.
using (StreamWriter sw = File.AppendText(path))
{
sw.WriteLine("This");
sw.WriteLine("is Extra");
sw.WriteLine("Text");
} // Open the file to read from.
using (StreamReader sr = File.OpenText(path))
{
string s = "";
while ((s = sr.ReadLine()) != null)
{
Console.WriteLine(s);
}
}
}
}
fi = new FileInfo(strPath);
fStream = fi.Open(FileMode.OpenOrCreate, FileAccess.Write, FileShare.Read);
sw = new StreamWriter(fStream,System.Text.Encoding.GetEncoding("Gb2312"));
sw = fi.AppendText();这时候报错,说文件流正在被一个进程读取.
fStream = fi.Open(FileMode.OpenOrCreate, FileAccess.Write, FileShare.Read);
sw = new StreamWriter(fStream,System.Text.Encoding.GetEncoding("Gb2312"));
sw = fi.AppendText();
用一句话就可以了
StreamWriter sw = File.AppendText(strPath);
上面的4句去掉!
必须在每次写入的时候追加format参数.
sw.WriteLine("你好",System.Text.Encoding.GetEncoding("Gb2312"));
给分结贴