BinaryReader和while语句运算符

本文关键字:运算符 语句 while BinaryReader | 更新日期: 2023-09-27 18:27:25

这不是我的代码。我应该弄清楚发生了什么。while语句中的行是我感到困惑的地方。它想说的都是读到文件末尾。我不明白它是如何计算为某个整数进行比较的。

        using (FileStream fs = File.Open(pathToPK, FileMode.Open))
        {
            BinaryReader br = new BinaryReader(fs);
            using (MemoryStream ms = new MemoryStream())
            {
                byte[] buffer = new byte[1024];
                int read = 0;
                while ((read = br.Read(buffer, 0, 1024)) > 0) //don't understand this line
                {
                    ms.Write(buffer, 0, read);
                }
                sk = new byte[ms.ToArray().Length]; //sk is a byte[]
                ms.ToArray().CopyTo(sk, 0);
            }
        }

BinaryReader和while语句运算符

基本上是在FileMode中打开文件流。打开到指定的文件(pathToPK)。使用所述fileStream,它打开一个二进制读取器来读取原始字节,并创建一个新的MemoryStream来复制二进制内容。

然后,它继续按1024字节的块读取整个文件。BinaryReader的Read方法返回读取的字节数,因此您可以将条件读取为"当读取器读取至少1个字节(并尝试读取多达1024个字节)时"。

最后,它将根据复制到的内存流创建一个新的字节[],其长度相当于整个文件的长度,并实际将整个内容复制到sk 中

它以一种非常复杂的方式执行sk = File.ReadAllBytes(pathToPK);