gpt4 book ai didi

c# - 从 C# 中的字节数组中删除尾随空值

转载 作者:IT王子 更新时间:2023-10-29 04:53:00 29 4
gpt4 key购买 nike

好的,我正在将 dat 文件读入字节数组。出于某种原因,生成这些文件的人在文件末尾放置了大约半兆字节的无用空字节。任何人都知道一个快速的方法来修剪这些结束?

首先想到的是从数组的末尾开始并向后迭代,直到找到非 null 的值,然后复制到该点的所有内容,但我想知道是否没有更好的方法。

回答一些问题:您确定 0 字节肯定在文件中,而不是文件读取代码中存在错误吗?是的,我很确定。

你真的能去掉所有尾随的 0 吗?是的。

文件的其余部分可以有任何 0 吗?是的,其他地方可以有0,所以,不行,我不能从头开始,到第一个0就停止。

最佳答案

我同意乔恩的观点。关键是您必须“接触”从最后一个字节到第一个非零字节的每个字节。像这样:

byte[] foo;
// populate foo
int i = foo.Length - 1;
while(foo[i] == 0)
--i;
// now foo[i] is the last non-zero byte
byte[] bar = new byte[i+1];
Array.Copy(foo, bar, i+1);

我很确定这与您将能够做到的一样高效。

关于c# - 从 C# 中的字节数组中删除尾随空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/240258/

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