如果我有一个包含此数据的文件:
01 02 03 04 05 06 07 08 09 0A
当我尝试插入字节FF时,例如,在01和02之间,新文件将是这样的:
01 FF 03 04 05 06 07 08 09 0A
但是我想插入那个字节而不是替换一个。我该怎么办?
01 FF 02 03 04 05 06 07 08 09 0A
答案 0 :(得分:2)
所以主要是这个
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
var insertInPos = 1;
var inBytes = new byte[] {01 ,02 ,03, 04, 05, 06, 07, 08, 09, 0x0A };
var insertBytes = new byte[] {0xFF, 0xDD};
var newBytes = InsertBytes(inBytes, insertBytes, insertInPos);
}
public static byte[] InsertBytes(byte[] inBytes, byte[] insertBytes, int insertInPos)
{
var insertLen = insertBytes.Length - 1;
var outBytes = new byte[inBytes.Length + insertLen + 1];
var outLen = outBytes.Length - 1;
for (int i = 0, j = 0; i < outLen; ++i)
{
if (i < insertInPos)
{
outBytes[i] = inBytes[i];
}
else if (i == insertInPos)
{
while (j <= insertLen)
{
outBytes[i + j] = insertBytes[j++];
}
}
else
{
outBytes[i + insertLen] = inBytes[i - insertLen];
}
}
return outBytes;
}
}
}
答案 1 :(得分:0)
int index=1;
byte item=01;
List<byte> by = new List<byte>();
string path = "Path here";
Byte[] b = File.ReadAllBytes(path);
by = b.ToList();
by.Insert(index, item);