package com.qxueyou.scc.sys.utils; import java.io.ByteArrayOutputStream; import java.io.DataInputStream; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import java.net.UnknownHostException; import org.apache.commons.codec.digest.DigestUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class Image2Binary { private static Logger log = LoggerFactory.getLogger(Image2Binary.class); public static byte[] toByteArray(InputStream in) throws IOException { ByteArrayOutputStream out=new ByteArrayOutputStream(); byte[] buffer=new byte[1024*4]; int n=0; while ( (n=in.read(buffer)) !=-1) { out.write(buffer,0,n); } return out.toByteArray(); } /** * 网络文件转换为byte二进制 * @Title: toByteArray * @Description: TODO(这里用一句话描述这个方法的作用) * @param @param url * @param @return * @param @throws IOException 设定文件 * @return byte[] 返回类型 * @throws */ public static byte[] toByteArray(String urlStr) throws IOException { URL url = new URL(urlStr); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); DataInputStream in = new DataInputStream(conn.getInputStream()); ByteArrayOutputStream out=new ByteArrayOutputStream(); byte[] buffer=new byte[1024*4]; int n=0; while ( (n=in.read(buffer)) !=-1) { out.write(buffer,0,n); } return out.toByteArray(); } /** * @throws IOException * @throws MalformedURLException * 网络文件转换为本地文件 * @Title: toByteArray * @Description: TODO(这里用一句话描述这个方法的作用) * @param @param url * @param @return * @param @throws IOException 设定文件 * @return byte[] 返回类型 * @throws */ public static void toBDFile(String urlStr, String bdUrl) throws IOException,UnknownHostException{ URL url = new URL(urlStr); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); DataInputStream in = new DataInputStream(conn.getInputStream()); byte[] data=toByteArray(in); in.close(); FileOutputStream out=new FileOutputStream(bdUrl); out.write(data); out.close(); } /** * 直接获取网络文件的md5值 * @param urlStr * @return */ public static String getMd5ByUrl(String urlStr){ String md5 = null; try { URL url = new URL(urlStr); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); DataInputStream in = new DataInputStream(conn.getInputStream()); md5 = DigestUtils.md5Hex(in); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return md5; } /** * 获取网络文件的输入流 * @param urlStr * @return */ public static InputStream getInputStreamByUrl(String urlStr){ DataInputStream in = null; try { URL url = new URL(urlStr); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); in = new DataInputStream(conn.getInputStream()); } catch (IOException e) { log.error("url转换输入流失败,错误信息{}",e.getMessage()); } return in; } public static void main(String[] args) { // try { // toBDFile("https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1496324940814&di=1d70e0de447be6547c372718b9b30ff6&imgtype=0&src=http%3A%2F%2Fimage.tianjimedia.com%2FuploadImages%2F2015%2F204%2F22%2FYMG9CAUWUM15.jpg","E://a.jpg"); // } catch (IOException e) { // // TODO Auto-generated catch block // e.printStackTrace(); // } String a = getMd5ByUrl("https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1496324940814&di=1d70e0de447be6547c372718b9b30ff6&imgtype=0&src=http%3A%2F%2Fimage.tianjimedia.com%2FuploadImages%2F2015%2F204%2F22%2FYMG9CAUWUM15.jpg"); System.out.println(a); } }