我试图从一个文本文件中读取并写入另一个文本文件.Im读取的文件有2023行,而我写的文件只有2008行.我无法弄清楚另一条线上发生了什么......我在某处失去了它们.我究竟做错了什么?
谢谢!
继承我在C#中的代码.
static void Main(string[] args)
{
StreamWriter writer = new StreamWriter("C:/Users/Rafael/desktop/newfile.txt");
StreamReader reader = new StreamReader("C:/Users/Rafael/desktop/new1.txt");//, System.Text.Encoding.GetEncoding("ISO-8859-1"));
string line;
while ((line = reader.ReadLine()) != null)
{
writer.WriteLine(line);
}
}
Run Code Online (Sandbox Code Playgroud)
在这里,你没有关闭流程图 - 所以它可能不会被写入文件.你可以通过在循环后调用Close()来测试它,或者如果你还没有完成文件,你可以使用Flush().
给定一个选择,我会重写代码以使用Using{}块,当它们超出范围时通过调用Dispose()自动关闭流.
最有可能的是输出没有被刷新,因为你没有调用Dispose()writer,所以缓冲的输出被抛弃了.
当您使用IDisposable以这种方式实现的类时,应始终将它们包装在using块中:
static void Main(string[] args)
{
using (StreamWriter writer = new StreamWriter("C:/Users/Rafael/desktop/newfile.txt"))
using (StreamReader reader = new StreamReader("C:/Users/Rafael/desktop/new1.txt"))
{
string line;
while ((line = reader.ReadLine()) != null)
{
writer.WriteLine(line);
}
}
}
Run Code Online (Sandbox Code Playgroud)