我正在从C#迁移到Java,似乎无法找到任何相关信息。我正在尝试读取一个使用十六进制的文件,在Java中我使用...
String s = Integer.toHexString(hexIn);
if(s.length() < 2){
s = "0" + Integer.toHexString(hexIn);
}
因为我确定你知道这就是所以如果读入的字节是一个字符长,它会增加一个零来使它成为十六进制,我想为c#做同样的事情到目前为止我有......
StreamReader reader = new StreamReader(fileDirectory);
long stickNoteLength = fileDirectory.Length;
int hexIn;
String hex = "";
for (int i = 0; (hexIn = reader.Read()) != -1; i++)
{
}
现在我卡住了,对不起,如果这是一个简单的问题并感谢您的帮助:)
答案 0 :(得分:3)
string hex = String.Format("{0:X2}", hexIn);
使用此格式化掩码,您将获得0到32之间的数字(例如):
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F
我添加了 2 (0:X2
),因为您提到您正在阅读字节。
注意,表示十六进制数也适用于在字符串开头添加 0x :
string hex = String.Format("0x{0:X2}", hexIn);
答案 1 :(得分:1)
试试这个
hex = hexIn.ToString("X");
或
hex = Convert.ToString(hexIn,16);