假设我有以下 XML 文件:
<book>
<name>sometext</name>
<name>sometext</name>
<name>sometext</name>
<name>Dometext</name>
<name>sometext</name>
</book>
如果我想通过将 D 更改为 s 来修改内容(如第四个“name”节点所示),而不必读/写整个文件,这可能吗?
10 MB 的文件不是问题。把它吸起来。修改 DOM。将其写回文件系统。 10 GB 更是一个问题。在这种情况下:
假设:您没有更改文件的长度。将文件视为字符数组而不是字符(链接)列表:您不能在中间添加字符,只能更改它们。
你需要seek
文件中要更改的位置,然后write
将该字符写入磁盘。
在 .NET 世界中,FileStream
对象,你要设置什么Position
属性的索引D
字符,然后写一个s
特点。查看有关文本文件的随机访问的问题 https://stackoverflow.com/questions/265639/net-c-random-access-in-text-files-no-easy-way.
另请阅读这个问题:如何使用 C# 向文件中插入字符 https://stackoverflow.com/questions/98484/how-to-insert-characters-to-a-file-using-c。看来你真的不能使用FileStream
对象,但必须诉诸于写入单个字节。
祝你好运。但实际上,如果我们只谈论 10 MB,那么就将其吞掉吧。计算机应该完成你的工作。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)