C#读入文件使用十六进制打印FFFFFF

时间:2011-05-16 18:50:32

标签: c# hex

非常困惑,当我在使用下面的代码读取文件时,它打印出FFFFFF,有人可以向我解释这个文本文件中只有数字和字母吗?任何帮助都会非常棒!

        String fileDirectory = "C:\\t.txt";
        StreamReader reader = new StreamReader(fileDirectory);

        int hexIn;

        for (int i = 0; (hexIn = reader.Read()) != -1; i++)
        {

            String s;
            s = hexIn.ToString("X2");
            int x = 0;
            while (x < 1)
            {
                hexIn = reader.Read();
                s = hexIn.ToString("X2");
                x++;
            }
            hexIn = reader.Read();
            s = hexIn.ToString("X2");
            MessageBox.Show(s);

        }

2 个答案:

答案 0 :(得分:3)

每个循环迭代你有三个Read次调用,这意味着它们中的任何一个都可以返回-1来指示文件的结尾。我怀疑那时候会被转换为FFFFFFFF,因此你的输出。为什么你有多个Read电话?你为什么不一次读一块?

答案 1 :(得分:0)

FFFFFF也可能表示空值。如果您使用Hex编辑Nintendo DS Roms,您会看到最后一堆FFFFFFFF,因为游戏对于盒式磁带来说太小了,所以实际上文件最后可能有空值。