使用FileInfo关键字

本文关键字:关键字 FileInfo 使用 | 更新日期: 2023-09-27 18:04:41

我写的代码如下:

        static void Main(string[] args)
        {
             FileInfo fiobj = new FileInfo(@"e:'mohan.txt");
             Console.Write("Name of file:"+ fiobj.Name);
             using(StreamWriter sw = fiobj.AppendText())
             {
                sw.WriteLine("mohan!");
             }
        }
    // code not working
    static void Main(string[] args)
        {
           FileInfo fiobj = new FileInfo(@"e:'mohan.txt");
           Console.Write("Name of file:"+ fiobj.Name);
           StreamWriter sw = fiobj.AppendText();            
           sw.WriteLine("mohan!");            
        }

当我使用"using(){}"块时,我能够写入文件,但是当我在不使用(){}块的情况下编写相同的代码时,我无法这样做。为什么是这样呢?据我所知,使用(){}块指定对象的生命周期范围。是否使用(){}块在这里做了一些奇特的事情,使它能够将数据写入文件

使用FileInfo关键字

没有using语句,就不能关闭StreamWriter
因此,StreamWriter保持打开状态,文件保持锁定状态。

using是正确确保你的对象在using块之外时是Disposed的简写。

你的代码相当于:

StreamWriter sw = fiobj.AppendText();
try
{
    sw.WriteLine("mohan!");
}
finally
{
    if (sw != null)
    {
        ((IDisposable)sw).Dispose();
    }
}

这段代码正确地关闭并处理了StreamWriter。如果没有它,它将保持锁定状态。