I have the following code to zip and unzip the String:
public static void main(String[] args) {
    // TODO code application logic here
    String Source = "hello world";
    byte[] a = ZIP(Source);
    System.out.format("answer:");
    System.out.format(a.toString());
    System.out.format("\n");
    byte[] Source2 = a.toString().getBytes();
    System.out.println("\nsource 2:" + Source2.toString() + "\n");
    String b = unZIP(Source2);
    System.out.println("\nunzip answer:");
    System.out.format(b);
    System.out.format("\n");
}
  public static byte[] ZIP(String source) {
      ByteArrayOutputStream bos= new ByteArrayOutputStream(source.length()* 4);
      try {
          GZIPOutputStream outZip= new GZIPOutputStream(bos);
          outZip.write(source.getBytes());
          outZip.flush();
          outZip.close();
      } catch (Exception Ex) {
      }
      return bos.toByteArray();
  }
public static String unZIP(byte[] Source) {
    ByteArrayInputStream bins= new ByteArrayInputStream(Source);
    byte[] buf= new byte[2048];
    StringBuffer rString= new StringBuffer("");
    int len;
    try {
        GZIPInputStream zipit= new GZIPInputStream(bins);
        while ((len = zipit.read(buf)) > 0) {
             rString.append(new String(buf).substring(0, len));
        }
        return rString.toString();
    } catch (Exception Ex) {
       return "";
    }
}
When "Hello World" have been zipped, it's will become [B@7bdecdec in byte[] and convert into String and display on the screen. However, if I'm trying to convert the string back into byte[] with the following code:
 byte[] Source2 = a.toString().getBytes();
the value of variable a will become to [B@60a1807c instead of [B@7bdecdec . Does anyone know how can I convert the String (a value of byte but been convert into String) back in byte[] in JAVA?
 
     
    