public static void dumpHex
( StringBuffer sb,
byte[] b
)
{
for( int i =
0 ; i < b.
length ; ++i
)
{
if( i %
16 ==
0 )
{
sb.
append( Integer.
toHexString( ( i & 0xFFFF
) | 0x10000
).
substring( 1,
5 ) +
" - " ) ;
}
sb.
append( Integer.
toHexString( ( b
[ i
] & 0xFF
) | 0x100
).
substring( 1,
3 ) +
" " ) ;
if( i %
16 ==
15 || i == b.
length -
1 )
{
int j ;
for( j =
16 - i %
16 ; j >
1 ; --j
)
sb.
append( " " ) ;
sb.
append( " - " ) ;
int start =
( i /
16 ) *
16 ;
int end =
( b.
length < i +
1 ) ? b.
length :
( i +
1 ) ;
for( j = start ; j < end ; ++j
)
if( b
[ j
] >=
32 && b
[ j
] <=
126 )
sb.
append( ( char )b
[ j
] ) ;
else
sb.
append( "." ) ;
sb.
append( "\n" ) ;
}
}
}
public static void dumpHex
( byte[] b
)
{
StringBuffer sb =
new StringBuffer() ;
dumpHex
( sb, b
) ;
System.
out.
println( sb.
toString() ) ;
}