java 16进制字符串 转 byte[] 转文件 文件 转byte[] 转16进制字符串

来源:互联网 发布:端口名称怎么查 编辑:程序博客网 时间:2024/06/06 00:15

①1、16进制字符串 转 byte[]

public static byte[] hexStringToBytes(String hexString) {      if (hexString == null || hexString.equals("")) {          return null;       }       hexString = hexString.toUpperCase();       int length = hexString.length() / 2;       char[] hexChars = hexString.toCharArray();      byte[] d = new byte[length];       for (int i = 0; i < length; i++) {           int pos = i * 2;         d[i] = (byte) (charToByte(hexChars[pos]) << 4 | charToByte(hexChars[pos + 1]));       }       return d;            }   private static byte charToByte(char c) {       return (byte) "0123456789ABCDEF".indexOf(c);   }  



2、byte[] 转 图片/xml/ pdf

 public static void byteTofile(byte[] data,String path){    if(data.length<3||path.equals("")) return;    try{    FileOutputStream imageOutput = new FileOutputStream(new File(path));    imageOutput.write(data, 0, data.length);    imageOutput.close();    System.out.println("Make Picture success,Please find image in " + path);    } catch(Exception ex) {    log.info("byteTofile.Exception():" + ex);      ex.printStackTrace();    }  }

测试16进制字符串 转 byte[] 转文件

String s1="52abcdef5252";byte[] stringHex = hexStringToBytes(s1);byteTofile(stringHex, "E:\\wangyc.png");



②3、图片 xml pdf 转byte[]

public static byte[] fileTobyte(String path){    byte[] data = null;    FileInputStream input = null;    try {      input = new FileInputStream(new File(path));      ByteArrayOutputStream output = new ByteArrayOutputStream();      byte[] buf = new byte[1024];      int numBytesRead = 0;      while ((numBytesRead = input.read(buf)) != -1) {      output.write(buf, 0, numBytesRead);      }      data = output.toByteArray();      output.close();      input.close();    }    catch (FileNotFoundException ex1) {      ex1.printStackTrace();      log.info("fileTobyte.FileNotFoundException():"+ex1);    }    catch (IOException ex1) {      ex1.printStackTrace();      log.info("fileTobyte.IOException():"+ex1);    }    return data;  }


4、byte[] 转16进制字符串

public static String bytesToHexString(byte[] src){      StringBuilder stringBuilder = new StringBuilder("");      if (src == null || src.length <= 0) {          return null;      }      for (int i = 0; i < src.length; i++) {          int v = src[i] & 0xFF;          String hv = Integer.toHexString(v);          if (hv.length() < 2) {              stringBuilder.append(0);          }          stringBuilder.append(hv);      }      return stringBuilder.toString();  }  


测试文件 转byte[] 转16进制字符串

byte[] image2byte = fileTobyte("E:\\wangyc.png");
String bytesToHexString = bytesToHexString(image2byte);
System.out.println("bytesToHexString:"+bytesToHexString);


5、③

网络文件 转byte[]

public static byte[] getFileFromNetByUrl(String strUrl){            try {                URL url = new URL(strUrl);                HttpURLConnection conn = (HttpURLConnection)url.openConnection();                conn.setRequestMethod("GET");                conn.setConnectTimeout(5 * 1000);                InputStream inStream = conn.getInputStream();//通过输入流获取图片数据                byte[] btImg = readInputStream(inStream);//得到图片的二进制数据                return btImg;            } catch (Exception e) {                e.printStackTrace();            }            return null;        }


从输入流中获取数据
 public static byte[] readInputStream(InputStream inStream) throws Exception{            ByteArrayOutputStream outStream = new ByteArrayOutputStream();            byte[] buffer = new byte[1024];            int len = 0;            while( (len=inStream.read(buffer)) != -1 ){                outStream.write(buffer, 0, len);            }            inStream.close();            return outStream.toByteArray();        } 


测试网络文件转byte[] 再转16进制字符串

byte[] image2byte = getFileFromNetByUrl("http://oss-cn-shenzhen.aliyuncs.com/1502694718995.xml");
String bytesToHexString = bytesToHexString(image2byte);
System.out.println("bytesToHexString:"+bytesToHexString);





阅读全文
0 0
原创粉丝点击