flush();close();dispose()

写一个写csv文件的程序,用streamwriter,觉得程序主体是没有问题的,但是一直写不进去,最后发现是因为没有调用flush().

msdn 对streamwriter.flush()的的说明是:清理当前编写器的所有缓冲区,并使所有缓冲数据写入基础流

msdn对streamwriter.close()的说明是:关闭当前的streamWriter对象和基础流。

msdn对streamwriter.dispose()的说明是:释放由TextWriter对象使用的所有资源。备注,使用完Textwriter后调用dispose,dispose方法十textwriter处于不可用状态。调用完dispo后,必须释放对textwriter的所有引用,这样垃圾回收器才能收回textwriter占用的内存。

看到某博友的程序comment,调用write()或者writeline(),streamwriter会把写的数据放到缓冲区中;flush()强制把缓冲区的数据写到文件,即使缓冲器不满,也就是所谓的刷新;调用close(),关闭流,在关闭之前会把没写入文件中的缓冲区中的数据写入文件。

原文地址:https://www.cnblogs.com/amigo/p/3479867.html