我正在尝试编写 huffman 解压缩,我有一个函数试图逐字节读取整个压缩文件,但我有一个问题,它只读取大约 150 个第一个字节,其余的被跳过我不明白为什么。
这是功能:
public static StringBuilder odczytBajtowy(string nazwa)
{
FileStream plik = null;
StringBuilder dane = new StringBuilder("");
try
{
plik = new FileStream(@nazwa, FileMode.Open, FileAccess.Read);
int w;
int n = 0;
do
{
n++;
w = plik.ReadByte();
if (w != -1)
dane.Append(StringHelp.Reverse(Convert.ToString((byte)w,2).PadLeft(8, '0')));
}
while ((w > 0));
}
catch (FileNotFoundException)
{
Console.WriteLine("Brak pliku {0}", nazwa);
}
finally
{
if (plik != null)
{
plik.Close();
}
}
return dane;
}
看起来该函数在文件真正结束之前读取 EOF。我知道字节之间没有 EOF,因为我在那里只写字节值。