我在尝试使用file.Close和StreamWriter这个方法时遇到了问题,它似乎不喜欢它。有人可以证明如何做到这一点。 (原因是,另一种方法是访问正在使用的文件,因此无法访问,因为该文件仍被其他方法使用。)
到目前为止代码:
private static void TrimColon()
{
using (StreamWriter sw = File.AppendText(@"process_trimmed.lst"))
{
StreamReader sr = new StreamReader(@"process_trim.lst");
string myString = "";
while (!sr.EndOfStream)
{
myString = sr.ReadLine();
int index = myString.LastIndexOf(":");
if (index > 0)
myString = myString.Substring(0, index);
sw.WriteLine(myString);
}
}
}
答案 0 :(得分:4)
由于“using”语句,StreamWriter已关闭以及刷新。所以不需要打电话。
答案 1 :(得分:4)
private static void TrimColon(String inputFilePath, String outputFilePath)
{
//Error checking file paths
if (String.IsNullOrWhiteSpace(inputFilePath))
throw new ArgumentException("inputFilePath");
if (String.IsNullOrWhiteSpace(outputFilePath))
throw new ArgumentException("outputFilePath");
//Check to see if files exist? - Up to you, I would.
using (var streamReader = File.OpenText(inputFilePath))
using (var streamWriter = File.AppendText(outputFilePath))
{
var text = String.Empty;
while (!streamReader.EndOfStream)
{
text = streamReader.ReadLine();
var index = text.LastIndexOf(":");
if (index > 0)
text = text.Substring(0, index);
streamWriter.WriteLine(text);
}
}
}