在c#中截断文件的前4个字节最有效的方法是什么?
本文关键字:字节 有效 方法 是什么 4个 文件 | 更新日期: 2023-09-27 18:11:10
我有一个压缩(LZMA) .txt文件,需要解压缩,但我必须排除前4个字节,因为它们不是文件内容的一部分。
我像这样加载我的文件:
byte[] curFile = File.ReadAllBytes(files[i]);
性能是至关重要的,因为我必须遍历超过14k+的文件,平均文件大小约为4KB。
for (int i = 0; i < filePath.Length; i++)
{
var positionToSkipTo = 4;
using (var fileStream = File.OpenRead(filePath))
{
fileStream.Seek(positionToSkipTo, SeekOrigin.Begin);
var curFile = new byte[fileStream.Length - positionToSkipTo];
fileStream.Read(curFile, 0, curFile.Length);
//Do your thing
}
}
一切都不言自明。重要的函数在MSDN FileStream类文档中列出。
如果你只是使用字节数组,你可以在array类中使用ConstrainedCopy方法。
Array.ConstrainedCopy(unclippedArray, 4, clippedArray, 0, unclippedArray.Length - 4);
如果你不打算只处理原始字节,利用内存流和二进制读取器或文件流,就像其他人建议的。