如何按特定值提升字节?

时间:2016-10-27 12:13:02

标签: c# byte

所以我有这个文件,我正在打开:

static void Encrypt(string fileName)
{
    using (FileStream stream = File.OpenRead(fileName))
    {
        using (BinaryReader reader = new BinaryReader(stream))
        {
            for (int i = 0; i < stream.Length; i++)
            {
                byte b = reader.ReadByte();
                byte newByte = (byte(b + 5))
            }
        }
    }
}

我想为我文件中的每个字节添加特定值并保存。

2 个答案:

答案 0 :(得分:1)

所以只需将新字节存储在一个集合中,并在读完整个文件后保存它们。

var newBytes = new List<byte>();
...
for (int i = 0; i < stream.Length; i++)
{
    byte b = reader.ReadByte();
    newBytes.Add(b + 5);
}
...

File.WriteAllBytes(filePath, newBytes.ToArray());

答案 1 :(得分:1)

你可以这样做:

byte b = reader.ReadByte();
int newNumber = (int)b + 5;
byte newByte = (byte)(newNumber % 256);

要控制您可能创建的溢出,我建议您从byte更改为int

然后,这会将您读取的字节值加5,当您到达b == 251时,将其换算为零,251 + 5 == 256256 % 256 == 0