当前位置: 首页 > 知识库问答 >
问题:

如何在JAVA[duplicate]中将String变量转换回Byte[]

壤驷子安
2023-03-14

我有以下代码来压缩和解压缩字符串:

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 "";
    }
}

当“hello world”被压缩后,它将变成[b@7bdecdec,在byte[]中转换成字符串并显示在屏幕上。但是,如果我试图用下面的代码将字符串转换回byte[]:

 byte[] Source2 = a.toString().getBytes();

变量a的值将变为[b@60a1807c,而不是[b@7bdecdec。有没有人知道在Java中如何将字符串(一个byte的值,但已转换为字符串)转换回byte[]?

共有1个答案

淳于新
2023-03-14

为什么byte[]Source2=a.toString().getBytes();

这似乎是一个双重转换;将字节[]转换为字符串转换为字节[]

byte[]到字符串的真正转换是new string(byte[])希望您在同一个字符集中。

 类似资料:
  • 问题内容: 我正在尝试在C#字符串变量或字符串数​​组中获取SQL结果。是否有可能?我是否需要以某种方式使用SqlDataReader?对于C#函数和所有函数,我都是新手,曾经在PHP中工作,所以请给出一个可行的示例(如果相关,我已经可以连接并访问数据库,进行插入和选择。。我只是不知道如何将结果存储在字符串变量中)。 问题答案: 这不是历史上最伟大的例子,就像您没有从数据库返回任何行一样,您最终都

  • 我正在尝试将String转换为对象,但java不允许。

  • 问题内容: 有没有办法将a 变成a 或将一个字母变成a (例如如何将a 变成a 和a 变成an )?(如果可以,请链接到相关文档)。 我该如何找到在文档中才隐约知道的类似内容? 问题答案: 您可以通过确定可能涉及的类来查找文档。在这里,候选人是和。 您应该先熟悉以下内容: 原始包装 中的Java Collection框架 它还有助于通过教程更慢地介绍API。 处理字符串中的字符

  • 问题内容: 我想问一个关于Java的问题。我已经使用Java中的URLConnection来检索DataInputStream。我想将DataInputStream转换为Java中的String变量。我该怎么办?谁能帮我。谢谢。 以下是我的代码: 问题答案: 这就是你想要的。

  • 如果我有一个带有两个值的变量(例如Sex可以取男性或女性),我会使用如下代码:, 将字符串转换为整数。如果变量包含两个以上的值,如分类为低/中/高的工资,该怎么做?如何分配与上述类似的值?

  • 问题内容: 如何在Java中将值解析为类型? 我知道如何做int和double(例如)。字符串和字符有类吗? 问题答案: 如果您的字符串仅包含一个字符,则将其转换为字符的最简单方法可能是调用该方法: