代码之家  ›  专栏  ›  技术社区  ›  esac

如何立即写入文件?

  •  5
  • esac  · 技术社区  · 15 年前

    我想保留一个日志文件,我正在使用textwriter/streamwriter将消息写入我的日志文件。我在写完消息后调用了textWriter.flush(),但我的消息仍然没有立即显示。它只在我调用close时出现,我不希望为了立即看到消息而一直重新打开和关闭文件。

    3 回复  |  直到 15 年前
        1
  •  5
  •   Mike Two    15 年前

    您可能希望自己尝试构造一个文件流,并将fileOptions.WriteThrough传递给构造函数。然后用该文件流构建您的流作者。writethrough选项将绕过缓存。

        2
  •  3
  •   marc_s    15 年前

    你也可以设置 StreamWriter.AutoFlush 属性设置为true。通过此操作,写入到streamwriter的任何内容都将立即写入磁盘(每次调用 Write )

    MSDN documentation 论AutoFlush:

    获取或设置一个值,该值指示 流作者是否将刷新 它对底层流的缓冲区 每次呼叫后 streamwriter..写入。

    马克

        3
  •  0
  •   Yuri Astrakhan    15 年前

    请确保使用读取共享访问权限打开日志文件,允许随后打开文件进行读取,但拒绝写入访问权限。这样您就可以从另一个程序监视日志。