gpt4 book ai didi

c# - 如何将数据从 .NET 持久保存到磁盘?

转载 作者:可可西里 更新时间:2023-11-01 08:56:56 25 4
gpt4 key购买 nike

我有各种丰富的数据结构(主要是树),我想将它们保存到磁盘,这意味着我不仅想将它们写入磁盘,而且我希望保证数据已完全写入并在掉电。

其他人似乎设计了将平面数据库表中的丰富数据结构编码为从父节点到子节点的查找表的方法。这有助于对数据运行 SQL 查询,但我不需要这样做:我只想保存和加载我的树。

显而易见的解决方案是将所有内容作为一个 blob 存储在数据库中:单个条目可能包含一个长字符串。这是对数据库的滥用还是推荐的做法?另一种解决方案可能是使用 XML 数据库?有没有我应该考虑的数据库替代方案?

最后,我是从 F# 执行此操作的,因此从 .NET 持久化数据的交 key 解决方案将是理想的...

编辑:请注意,格式化(例如序列化)是无关紧要的,因为我可以使用 F# 轻松地在格式之间进行转换。这是关于获得一个确认,即写入已经完成,一直到非 volatile 存储(即磁盘盘片),并且写入数据的任何部分都没有保存在 volatile 存储(例如 RAM 缓存)中,以便我可以继续安全地掌握这些知识(例如,通过从磁盘中删除旧版本的数据)。

最佳答案

.NET 的 FileStream 类的一些构造函数采用 FileOptions 类型的参数. FileOptions 的值之一是 WriteThrough,它“表示系统应该通过任何中间缓存写入并直接写入磁盘。”

这应该确保在您的写入操作(对新文件)返回时,数据已提交到磁盘,您可以安全地删除旧文件。

关于c# - 如何将数据从 .NET 持久保存到磁盘?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4740062/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com