code: public static String prettyHexDump(byte[] buffer, int offset, int length) {
          	 if (length < 0) {
                   throw new IllegalArgumentException("length: " + length);
                 }
  		    if (length == 0) {
  			      return EMPTY_STRING;
  			    } else {
  			        int rows = length / 16 + (length % 15 == 0? 0 : 1) + 4;
  			        StringBuilder buf = new StringBuilder(rows * 80);
  			        appendPrettyHexDump(buf, buffer, offset, length);
  			        return buf.toString();
  			    }
  			}
docs: <pre>
  格式化为如下样式
  +-------------------------------------------------+
  |  0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f |
  +--------+-------------------------------------------------+----------------+
  |00000000| 4d 49 47 66 4d 41 30 47 43 53 71 47 53 49 62 33 |MIGfMA0GCSqGSIb3|
  |00000010| 44 51 45 42 41 51 55 41 41 34 47 4e 41 44 43 42 |DQEBAQUAA4GNADCB|
  |00000020| 69 51 4b 42 67 51 43 39 32 55 54 4f 61 51 48 55 |iQKBgQC92UTOaQHU|
  |00000030| 6d 4c 4f 2f 31 2b 73 43 6b 70 66 76 52 47 68 6d |mLO/1+sCkpfvRGhm|
  |00000040| 71 38 70 30 66 33 5a 79 42 71 6b 41 72 69 4d 6b |q8p0f3ZyBqkAriMk|
  |000000d0| 31 51 49 44 41 51 41 42                         |1QIDAQAB        |
  +--------+-------------------------------------------------+----------------+
  </pre>
  @param buffer
  @param offset
  @param length
  @return