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啦。

  • 相关阅读:
    Windows netstat 查看端口、进程占用
    nginx开启gzip
    linux查看内存
    linux查看进程、端口
    linux查看磁盘信息
    vmware克隆一台机器后修改etho
    java对象访问
    学生基本信息管理
    作业09-异常
    博客作业06--图
  • 原文地址:https://www.cnblogs.com/kaile/p/10197272.html
Copyright © 2011-2022 走看看