You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何我的StreamWriter无法写入.txt文件?附代码求助

解决StreamWriter写入后文件为空的问题

嘿,我之前也碰到过一模一样的问题!你遇到的情况是因为StreamWriter内部有缓冲区,调用WriteLine()之后,内容其实还留在内存的缓冲区里,并没有真正写入到磁盘文件中。

要解决这个问题,有几个实用的办法:

  • 调用Flush()方法:手动把缓冲区的内容强制写入文件

    FileStream f = new FileStream("HighScore.txt", FileMode.OpenOrCreate, FileAccess.ReadWrite);
    StreamWriter streamWriter = new StreamWriter(f);
    streamWriter.WriteLine("aaaaa");
    streamWriter.Flush(); // 强制刷新缓冲区到文件
    streamWriter.Close(); // 记得关闭流释放资源
    f.Close();
    
  • 使用using语句(推荐):using会自动帮你释放资源,包括自动刷新缓冲区和关闭流,这是最规范的写法,还能避免异常情况下的资源泄漏

    using (FileStream f = new FileStream("HighScore.txt", FileMode.OpenOrCreate, FileAccess.ReadWrite))
    using (StreamWriter streamWriter = new StreamWriter(f))
    {
        streamWriter.WriteLine("aaaaa");
    } // 代码块结束时自动执行Flush和Close操作
    
  • 直接调用Close()方法:关闭StreamWriter的时候,它会自动先刷新缓冲区,但单独用Close不如using安全——万一代码抛出异常,可能就没机会执行Close了

另外补充一点:如果文件被其他进程占用,也可能出现写入失败,但从你的代码来看,最核心的原因就是没触发缓冲区的内容写入磁盘~

内容的提问来源于stack exchange,提问作者omer5611

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 06:14:58