在开发过程中,经常需要用到前端传一个图片网络地址。然后后端需要吧这个地址转换成byte[]数组进行开发
代码如下
FileUtil 工具类
传入一个图片地址即可
图片地址转换成byte[]
/**
* 得到文件流
* @param url 网络图片URL地址
* @return
*/
public static byte[] getFileStream(String url){
try {
URL httpUrl = new URL(url);
HttpURLConnection conn = (HttpURLConnection)httpUrl.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;
}
/**
* 从输入流中获取数据
* @param inStream 输入流
* @return
* @throws Exception
*/
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();
}
Base64 字符转换成byte[]
直接使用java.util的包里面的Base64即可
Base64.getDecoder().decode(imageBase64); //base64转byte[]
byte[] 字符转换成Base64
直接使用java.util的包里面的Base64即可
Base64.getEncoder().encodeToString(byteArray);