gpt4 book ai didi

c# - 通过 C# 就地编辑文本文件

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

我有一个巨大的文本文件,大小 > 4GB,我想以编程方式替换其中的一些文本。我知道我必须替换文本的行号,但问题是我不想将所有文本(连同我替换的行)复制到第二个文件。我必须在源文件中执行此操作。有没有办法在 C# 中执行此操作?

必须替换的文本与源文本的大小完全相同(如果这有帮助的话)。

最佳答案

由于文件太大,您可能需要查看 .NET 4.0 对 memory mapped files 的支持。 .基本上,您需要将文件/流指针移动到文件中的位置,覆盖该位置,然后将文件刷新到磁盘。您不需要将整个文件加载到内存中。

例如,不使用内存映射文件,下面将覆盖一个ascii文件的一部分。 Args 是输入文件、从零开始的索引和新文本。

    static void Main(string[] args)
{
string inputFilename = args[0];
int startIndex = int.Parse(args[1]);
string newText = args[2];

using (FileStream fs = new FileStream(inputFilename, FileMode.Open, FileAccess.Write))
{
fs.Position = startIndex;
byte[] newTextBytes = Encoding.ASCII.GetBytes(newText);
fs.Write(newTextBytes, 0, newTextBytes.Length);
}
}

关于c# - 通过 C# 就地编辑文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3104324/

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