(JDK11)根据文件的Url输出该文件的Base64

由于和外部对接的时候需求要把一个文件的url输出为base64码,我这里参考了博客:
JAVA–根据Url下载文件数据(输出Base64)
但由于我用的是JDK11的,已经没有rt.jar的包了,而该博客里使用的是jdk8的BASE64Encoder,所以这个时候可以把BASE64Encoder换成org.apache.commons.codec.binary.Base64,我这里完整的代码如下:


/**
 * 把url格式的文件转为base64码
 * @author FanHuiFang
 * @version 1.0
 * @date 2024年04月18日 10:26
 */

import com.google.common.base.Strings;
import org.apache.commons.codec.binary.Base64;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;

public class Base64Utils {
    /**
     * 根据文件url获取文件并转换为base64编码
     *
     * @param url 文件地址
     * @return 文件base64编码
     */
    public static String netSourceToBase64(String url){
        try{
            URL uploadUrl = new URL(url);
            HttpURLConnection conn = (HttpURLConnection) uploadUrl.openConnection();
            conn.setConnectTimeout(10 * 1000);
            byte[] bytes = toByteArray(conn.getInputStream());
            //对字节数组Base64编码
            return Base64.encodeBase64String(bytes);
        } catch (Exception ex){
            System.out.println("文件下载出错:"+ex.getMessage()+"\n");
            return "";
        }
    }

    /**
     * inputStream转化为byte[]数组
     * @param input InputStream 输入流
     * @return byte[] 文件二进制字节数组
     * @throws IOException
     */
    public static byte[] toByteArray(InputStream input) throws IOException {
        ByteArrayOutputStream output = new ByteArrayOutputStream();
        byte[] buffer = new byte[4096];
        int len;
        while (-1 != (len = input.read(buffer))) {
            output.write(buffer, 0, len);
        }
        return output.toByteArray();
    }



    /**
     * 把base64转化文件流
     *
     * @param base64 base64
     * @return byte[] 文件流
     */
    public static byte[] decryptByBase64(String base64) {

        if (Strings.isNullOrEmpty(base64)) {
            return null;
        }
        return Base64.decodeBase64(base64.substring(base64.indexOf(",") + 1));
    }
}

---------------------知道的越多,不知道的越多----------------------

相关推荐

  1. (JDK11)根据文件Url输出文件Base64

    2024-04-22 12:44:06       13 阅读
  2. phpUrl 安全base64编码解码类

    2024-04-22 12:44:06       34 阅读
  3. kotlin根据文件filePath转化为uri

    2024-04-22 12:44:06       43 阅读
  4. golang 根据URL获取文件名

    2024-04-22 12:44:06       35 阅读
  5. 基于Base64上传Excel文件

    2024-04-22 12:44:06       21 阅读
  6. 制作ubuntu-base-23.10-base-armhf文件系统rootfs

    2024-04-22 12:44:06       37 阅读
  7. ubuntu-base(arm64与riscv64) 根文件系统

    2024-04-22 12:44:06       33 阅读

最近更新

  1. FPGA之术语

    2024-04-22 12:44:06       0 阅读
  2. 【Axure视频教程】页面滚动距离函数

    2024-04-22 12:44:06       0 阅读
  3. 如何判断服务器是否被攻击

    2024-04-22 12:44:06       0 阅读
  4. 网络服务器都包含哪些方面需要维护?

    2024-04-22 12:44:06       0 阅读

热门阅读

  1. Python与设计模式之桥接模式的那些事儿

    2024-04-22 12:44:06       16 阅读
  2. android gradle引入其他gradle文件

    2024-04-22 12:44:06       16 阅读
  3. SystemC 等待异步事件解决方案

    2024-04-22 12:44:06       18 阅读
  4. 常见DNS故障和问题解决过程

    2024-04-22 12:44:06       15 阅读
  5. Linux命令学习—Apache 服务器(下)

    2024-04-22 12:44:06       14 阅读
  6. 星期一(蓝桥杯)

    2024-04-22 12:44:06       16 阅读
  7. Remove the specified nodes in the linked list with dummy header

    2024-04-22 12:44:06       17 阅读
  8. python开发应该具备哪些能力

    2024-04-22 12:44:06       17 阅读