c# - 如何从 .NET 中的 txt 文件的开头删除 n 个字符?
问题描述
我知道您可以通过 File.WriteAllText 或类似函数覆盖整个文件内容来做到这一点。但它似乎不是在开始时删除几个字符的有效方法,特别是如果文本文件包含超过数百万个字符。
有没有办法使用一些 FileStream /其他 Stream 类函数来做到这一点?
解决方案
根据需要,您可以执行 Seek() 然后 CopyTo() 到一个新的流。
using (FileStream fs1 = new FileStream(FileName1, FileMode.Open, FileAccess.Read))
{
fs1.Seek(N, SeekOrigin.Begin); // N - number of characters from the beginning
using (FileStream fs2 = File.Create(FileName2))
fileStream1.CopyTo(fs2);
}
要删除第一行,请执行
var lines = File.ReadAllLines(FileName1);
File.WriteAllLines(FileName2, lines.Skip(N).ToArray());
推荐阅读
- ios - iOS Autolayout:如何显示/隐藏包含边距的视图?
- css - 展开父 CSS 网格内的内部 CSS 网格
- android - 为什么要在 build.gradle 中打印发布和调试消息?
- javascript - 如何获取高图中未选择项目的列表?
- apache-spark - 在火花中重现太大的帧异常
- flutter - 如何在对话框中将 SingleChildScrollView 滚动到 TextField 焦点
- c - 将 getpid() 与 clone() 一起使用会导致 SIGSEGV
- javascript - 如何在对象Javascript中制作数组列表
- tensorflow - 无法训练自定义反对者检测器
- php - 如何在文件夹应用程序内但在laravel中的文件夹http之外创建控制器?