当前位置:编程学习 > C#/ASP.NET >>

各位帮帮忙看下,为什么writebuffer总往文件里写入第一次读取的内容?

本人写了一段代码用byte【8】数组做缓冲读写文件,但总是写入第一次读取的内容(即writebuffer内容总是第一次循环的结果),能否帮帮忙看哪里出问题了?

XOR函数和Encode函数返回类型均为byte【8】数组,将Encode函数中temp改成readbuffer后(相当于直接跳过XOR函数),文件写入正常,XOR函数如下:

各位帮帮忙,谢谢! --------------------编程问答-------------------- 不知道你想做什么,思路混乱。 --------------------编程问答-------------------- 通常要这样写
int len=0;
while((len=fin.Read(readBuffer,0,readBuffer.Length))>0)
{
    .....
}
readBuffer中只有前面len个字节是有效的,你不能把后边多余的字节也当作有效内容去参与....的处理中! --------------------编程问答--------------------
引用 1 楼  的回复:
不知道你想做什么,思路混乱。

1.将前一次读取的明文块和当前读取明文块异或
2.将1中的结果用一个加密函数加密
3.写入加密文件

现在如果去掉第一步直接将当前读取的明文块加密执行成功,但加入第一步后writebuffer老往文件中写入第一循环的结果。比如明文头部为:abcdegfghijklmn...则老是写入abcdefghabcdefghabcdefgh...的密文 --------------------编程问答--------------------
引用 2 楼  的回复:
通常要这样写

C# code

int len=0;
while((len=fin.Read(readBuffer,0,readBuffer.Length))>0)
{
    .....
}
readBuffer中只有前面len个字节是有效的,你不能把后边多余的字节也当作有效内容去参与....的处理中!

谢谢您的回复,但问题没解决...请帮忙看一下3L更进一步的说明,谢谢! --------------------编程问答-------------------- 我把每次异或的内容改成一个固定byte数组写入又正常了,到底怎么回事呀?
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,