2011-04-10 42 views
1

我正在從C#移動到Java,並且似乎無法找到關於此的任何信息。我想,如果使用十六進制文件,在Java中我用讀...使用IO讀取C#中的十六進制代碼

 String s = Integer.toHexString(hexIn); 
     if(s.length() < 2){ 
      s = "0" + Integer.toHexString(hexIn); 
     } 

正如我敢肯定,你知道那所以如果讀取的字節是一個characater長它增加了一個零,使其十六進制,我想要做的C#同樣的事情,到目前爲止,我還...

 StreamReader reader = new StreamReader(fileDirectory); 
     long stickNoteLength = fileDirectory.Length; 

     int hexIn; 
     String hex = ""; 

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

     } 

現在我卡住了,對不起,如果這是一個簡單的問題,並感謝您的幫助:)

+1

不爲0的八進制和0X十六進制? – 2011-04-10 00:14:57

+0

所以,你需要從0到15的數字總是00,01,...,0F(還有0)? – 2011-04-10 00:18:45

+0

[使用IO在C#中讀取十六進制]的可能重複(http://stackoverflow.com/questions/5612437/read-hex-in-c-using-io) – 2011-04-10 15:19:57

回答

1

嘗試這

hex = hexIn.ToString("X"); 

hex = Convert.ToString(hexIn,16); 
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 

我已經加入(0:X2),因爲你提到您正在閱讀字節。 注意,對於代表十六進制數也將是正確的添加0X在字符串開頭:

string hex = String.Format("0x{0:X2}", hexIn);