return (data == null) ? "null\n" : dumpString(data, 0, data.length, m);
if (data == null) { return m + "null\n"; } StringBuffer sb = new StringBuffer(length * 3); if (length > 32) { sb.append(m).append("Hexadecimal dump of ").append(length).append( " bytes...\n"); }  int end = offset + length; String s; int l = Integer.toString(length).length(); if (l < 4) { l = 4; } for (; offset < end; offset += 32) { if (length > 32) { s = "         " + offset; sb.append(m).append(s.substring(s.length() - l)).append(": "); } int i = 0; for (; i < 32 && offset + i + 7 < end; i += 8) { sb.append(toString(data, offset + i, 8)).append(' '); } if (i < 32) { for (; i < 32 && offset + i < end; i++) { sb.append(byteToString(data[offset + i])); } } sb.append('\n'); } return sb.toString();
  public static String dumpString(byte[] data, String m)  {    return (data == null) ? "null\n" : dumpString(data, 0, data.length, m);  }