zoukankan      html  css  js  c++  java
  • Byte数组和字符串相互转换的问题

    第一:需求:将文件转成byte数组,之后转成字符串返回。过滤器接收到响应内容后,需要将响应的内容转成byte数组。

    第二:我刚开始的做法:

    Controller:
    byteArr = ConversionUtil.file2Byte(filePath); result = new String(byteArr,"utf-8");

    filter:
    String content = wrapResponse.getContent();
    responseBodyMw = new BASE64Encoder().encode(content.getBytes("utf-8"));

    结果:返回的String,和接收到的字符串不一样。

    原因:文件转成二进制数组后,不是16进制的,所以不能采用newString  这种方式转成字符串。

    第三:现在的做法,写了一个String和Byte转换的工具类,具体代码:

    /**
     * @Author: kiki
     * @Date: 2018/12/26
     */
    public class ByteConvertUtil {
    
        public static String bytesToHexString(byte[] bArr) {
            StringBuffer sb = new StringBuffer(bArr.length);
            String sTmp;
    
            for (int i = 0; i < bArr.length; i++) {
                sTmp = Integer.toHexString(0xFF & bArr[i]);
                if (sTmp.length() < 2){
                    sb.append(0);
                }
                sb.append(sTmp.toUpperCase());
            }
            return sb.toString();
        }
        /**
         * hex字符串转byte数组
         * @param inHex 待转换的Hex字符串
         * @return  转换后的byte数组结果
         */
        public static byte[] hexToByteArray(String inHex){
            int hexlen = inHex.length();
            byte[] result;
            if (hexlen % 2 == 1){
                //奇数
                hexlen++;
                result = new byte[(hexlen/2)];
                inHex="0"+inHex;
            }else {
                //偶数
                result = new byte[(hexlen/2)];
            }
            int j=0;
            for (int i = 0; i < hexlen; i+=2){
                result[j]=(byte)Integer.parseInt(inHex.substring(i,i+2),16);
                j++;
            }
            return result;
        }
    
    }

    说明:字符转换时,直接使用就OK啦。

  • 相关阅读:
    Linux文件名匹配
    Linux的常用命令
    百度飞桨学习笔记【Windows下用anaconda安装飞桨】
    在python中调用shell命令获得返回值
    使用sratoolkit下载NCBI数据
    perl 打开gz压缩文件 输出gz压缩文件
    jupyter notebook安装教程,打开ipynb文件
    生物信息学相关网站和博客资源
    R的循环补齐功能
    perl 遍历目录并且对目录中的文件进行操作
  • 原文地址:https://www.cnblogs.com/kaile/p/10197272.html
Copyright © 2011-2022 走看看