所以我有这个文件,我正在打开:
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))
}
}
}
}
我想为我文件中的每个字节添加特定值并保存。
答案 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 == 256
和256 % 256 == 0
。