📄 byteformatter.java
字号:
// Decompiled by Jad v1.5.8e2. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://kpdus.tripod.com/jad.html
// Decompiler options: packimports(3) fieldsfirst ansi space
// Source File Name: ByteFormatter.java
package org.gudy.azureus2.core3.util;
import java.nio.ByteBuffer;
// Referenced classes of package org.gudy.azureus2.core3.util:
// Debug
public class ByteFormatter
{
static final char HEXDIGITS[] = {
'0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
'A', 'B', 'C', 'D', 'E', 'F'
};
public ByteFormatter()
{
}
public static String nicePrint(String str)
{
return nicePrint(str.getBytes(), true);
}
public static String nicePrint(byte data[])
{
return nicePrint(data, false);
}
public static String nicePrint(byte data[], int max)
{
return nicePrint(data, false, max);
}
public static String nicePrint(ByteBuffer data)
{
byte raw[] = new byte[data.limit()];
for (int i = 0; i < raw.length; i++)
raw[i] = data.get(i);
return nicePrint(raw);
}
public static String nicePrint(byte data[], boolean tight)
{
return nicePrint(data, tight, 1024);
}
public static String nicePrint(byte data[], boolean tight, int max_length)
{
char out[];
Exception e;
if (data == null)
return "";
int dataLength = data.length;
if (dataLength > max_length)
dataLength = max_length;
int size = dataLength * 2;
if (!tight)
size += (dataLength - 1) / 4;
out = new char[size];
try
{
int pos = 0;
for (int i = 0; i < dataLength; i++)
{
if (!tight && i % 4 == 0 && i > 0)
out[pos++] = ' ';
out[pos++] = HEXDIGITS[(byte)(data[i] >> 4 & 0xf)];
out[pos++] = HEXDIGITS[(byte)(data[i] & 0xf)];
}
}
// Misplaced declaration of an exception variable
catch (Exception e)
{
Debug.printStackTrace(e);
}
return (new StringBuilder()).append(new String(out)).append(data.length <= max_length ? "" : "...").toString();
e;
Debug.printStackTrace(e);
return "";
}
public static String nicePrint(byte b)
{
byte b1 = (byte)(b >> 4 & 0xf);
byte b2 = (byte)(b & 0xf);
return (new StringBuilder()).append(nicePrint2(b1)).append(nicePrint2(b2)).toString();
}
public static String nicePrint2(byte b)
{
String out = "";
switch (b)
{
case 0: // '\0'
out = "0";
break;
case 1: // '\001'
out = "1";
break;
case 2: // '\002'
out = "2";
break;
case 3: // '\003'
out = "3";
break;
case 4: // '\004'
out = "4";
break;
case 5: // '\005'
out = "5";
break;
case 6: // '\006'
out = "6";
break;
case 7: // '\007'
out = "7";
break;
case 8: // '\b'
out = "8";
break;
case 9: // '\t'
out = "9";
break;
case 10: // '\n'
out = "A";
break;
case 11: // '\013'
out = "B";
break;
case 12: // '\f'
out = "C";
break;
case 13: // '\r'
out = "D";
break;
case 14: // '\016'
out = "E";
break;
case 15: // '\017'
out = "F";
break;
}
return out;
}
public static String encodeString(byte bytes[])
{
return nicePrint(bytes, true);
}
public static String encodeString(byte bytes[], int offset, int len)
{
byte x[] = new byte[len];
System.arraycopy(bytes, offset, x, 0, len);
return nicePrint(x, true);
}
public static byte[] decodeString(String str)
{
char chars[] = str.toCharArray();
int chars_length = chars.length - chars.length % 2;
byte res[] = new byte[chars_length / 2];
for (int i = 0; i < chars_length; i += 2)
{
String b = new String(chars, i, 2);
res[i / 2] = (byte)Integer.parseInt(b, 16);
}
return res;
}
public static int byteArrayToInt(byte array[])
{
return array[0] << 24 & 0xff000000 | array[1] << 16 & 0xff0000 | array[2] << 8 & 0xff00 | array[3] & 0xff;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -