前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C#中close(),flush()和dispose()区别 ?

C#中close(),flush()和dispose()区别 ?

作者头像
用户9127601
发布2022-11-28 14:17:56
8620
发布2022-11-28 14:17:56
举报
文章被收录于专栏:dotNET编程大全dotNET编程大全

Close()方法在这里就是关闭连接的意思,当我们使用完数据库或数据流的时候,就要用Close()方法把它们关闭,然后使用Dispose()方法进行释放,避免占用资源。但要注意,使用Close()方法仅仅只是关闭连接,资源并没有被释放。我们可以直接使用Dispose()方法,因为Dispose方法里面会判断当前连接是否关闭,如果没有关闭,就会调用Close()方法先关闭掉连接,然后再进行资源的释放。在using语句执行完毕之后,程序会自动调用Dispose()进行释放,不需要我们显式的调用Dispose()方法。

至于Flush()方法,不用Flush相当于一次性写入所有,用了Flush,表示不等后面的,先把当前的写入。 数据是先被读到了内存中的 ,再把数据写到文件中,当你数据读完的时候不代表你的数据已经写完了,因为还有一部分有可能会留在内存这个缓冲区中。这时候如果你调用了close()方法关闭了读写流,那么这部分数据就会丢失,所以为了防止数据丢失,应该在关闭读写流之前先flush()。

用法举例:下面写个控制台实例演示flush()用法

代码语言:javascript
复制
using System;
using System.IO;

namespace ConsoleApp18
{
    class Program
    {
        static void Main(string[] args)
        {
            var filePath = Path.Combine(Environment.CurrentDirectory,"log.txt");
            if(!File.Exists(filePath))
            {
                File.Create(filePath);
            }
            using(StreamWriter sw = new StreamWriter(filePath,true))
            {
                sw.WriteLine(DateTime.Now);
                sw.Flush();
            }
        }
    }
}
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-07-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 dotNET编程大全 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档