开发者

C# read in file using hex prints FFFFFF

very confused by this, when I read in a file using the code below when it gets to the end it prints out FFFFFF, could anyone explain this to me the text file only has numbers and letters in it? Any help would be most greatful!

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

        int hexIn;

        for (开发者_StackOverflow社区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);

        }


You've got three Read calls per loop iteration, which means that any one of them could return -1 to indicate the end of the file. I suspect that's then being converted to FFFFFFFF, hence your output. Why do you have more than one Read call? And why aren't you reading a block at a time?


The FFFFFF may also indicate an empty value. If you Hex editted Nintendo DS Roms you would see a whole bunch of FFFFFFFF at the end which is put there because the game is too small for the cartridge so in actual fact that file may have empty values at the end.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜