字符串列表不会完全写入文本文件

Raf*_*ira 4 .net c# stream

我试图从一个文本文件中读取并写入另一个文本文件.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)

ian*_*lly 9

在这里,你没有关闭流程图 - 所以它可能不会被写入文件.你可以通过在循环后调用Close()来测试它,或者如果你还没有完成文件,你可以使用Flush().

给定一个选择,我会重写代码以使用Using{}块,当它们超出范围时通过调用Dispose()自动关闭流.


por*_*ges 5

最有可能的是输出没有被刷新,因为你没有调用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)