使用IO在C#中读取十六进制

Pet*_*ete 9 c# io hex

嗨,我是C#从Java迁移的新手.尝试使用HEX中的IO读取文件.当我读到第一个字节时,我没有得到我在Hex编辑器中看到的内容.

我正在使用

StreamReader reader = new StreamReader(fileDirectory);
int hexIn;
String hex;

for (int i = 0; (hexIn = reader.Read()) != -1; i++){
    hex = Convert.ToString(hexIn, 16);
}
Run Code Online (Sandbox Code Playgroud)

在Java我用过......

    FileInputStream fis = new FileInputStream(file);
    long length = file.length();

    int hexIn;
    String hex = "";

    for(int i = 0; (hexIn = fis.read()) != -1; i++){

        String s = Integer.toHexString(hexIn);
        if(s.length() < 2){
            s = "0" + Integer.toHexString(hexIn);
        }
Run Code Online (Sandbox Code Playgroud)

我希望这是有道理的.任何帮助都会得到最多的帮助:)

谢谢

Mar*_*ade 12

不要使用StreamReader-that仅用于特定编码的字符(默认UTF8).FileStream改为使用类:

FileStream fs = new FileStream(fileDirectory, FileMode.Open);
int hexIn;
String hex;

for (int i = 0; (hexIn = fs.ReadByte()) != -1; i++){
    hex = string.Format("{0:X2}", hexIn);
}
Run Code Online (Sandbox Code Playgroud)