在c#中读取.text文件的十六进制值

时间:2011-07-18 06:26:01

标签: c# .net hex

如果我有像abc.txt这样的文本文件,我想要该.txt文件的十六进制值 就像我们看到当我们打开记事本+可以点击十六进制......这样的事情

74 68 65 72 77 69 73 65 20 69 73 20 69 74 63 68    
therwise is itch

69 6e 27 20 66 6f 72 20 61 20 66 69 67 68 74 2e     
in' for a fight.

现在我想要单个字母的这些十六进制值。

我知道如何使用FileStream()StreamReader()来阅读文字。

但是现在想要这些十六进制值我怎么能得到这个?

2 个答案:

答案 0 :(得分:4)

使用FileStream打开,然后使用Read获取byte的数组。对于数组中的每个元素,使用byteVal.ToString("x2")转换为十六进制对(如果需要大写十六进制,请使用X2。)

答案 1 :(得分:3)

BinaryReader reader = new BinaryReader(new FileStream("C:\\file.ext", FileMode.Open, FileAccess.Read, FileShare.None));
reader.BaseStream.Position = 0x0;     // The offset you are reading the data from
byte[] data = reader.ReadBytes(0x10); // Read 16 bytes into an array
reader.Close();

假设输入为therwise is itch

string data_as_str = Encoding.Default.GetString(data); // Output: therwise is itch
string data_as_hex = BitConverter.ToString(data);      // Output: 74-68-65-72-77-69-73-65-20-69-73-20-69-74-63-68