将二进制数据转换为字符数据的最佳方法是什么?

时间:2010-11-25 11:51:16

标签: java encoding binary hex base64

我想将文件(.jpg图像文件)转换为txt文件(ASCII码)

现在,我有两个计划,将文件字节转换为Hex,并转换为Base64

  File file=new File("D:/temp/1.jpg");
  byte[] bytes=getBytesFromFile(file);
  System.out.println("bytes:"+bytes.length);//bytes:9006
  String hex=HexUtil.asHex(bytes);
  String base64=Base64.encode(bytes);
  System.out.println("hex:"+hex.length());//hex:18012
  System.out.println("base64:"+base64.length());//base64:12165

我认为Base64更好,因为发送12165比十六进制字符串少。

我想知道,还有其他任何好主意吗?

非常感谢! :)

1 个答案:

答案 0 :(得分:6)

Base64或多或少是将二进制信息作为字符串传输的标准方式。所以,是的,你做得对。维基百科:

  

当需要编码需要通过设计用于处理文本数据的媒体进行存储和传输的二进制数据时,通常会使用Base64编码方案

在我的实践中,我通过网络服务发送附件时使用它来传输附件。 (这是由政府监管的(该项目涉及电子政务))