可以使用 Java 的 Base64 库来实现将图片流转成 Base64 的字符串。

以下是一个示例代码:

import java.io.*;
import java.util.Base64;

public class ImageToBase64 {
    public static void main(String[] args) throws IOException {
        File file = new File('image.jpg');
        FileInputStream inputStream = new FileInputStream(file);
        byte[] buffer = new byte[(int) file.length()];
        inputStream.read(buffer);

        String base64 = Base64.getEncoder().encodeToString(buffer);
        System.out.println(base64);
    }
}

在上面的代码中,我们首先创建一个 File 对象来表示要转换的图片文件。然后使用 FileInputStream 从文件中读取数据,并将其存储在一个字节数组中。

接下来,我们使用 Java 的 Base64 库中的 getEncoder() 方法获取一个 Base64 编码器实例,并使用 encodeToString() 方法将字节数组编码成一个 Base64 的字符串。

最后,我们打印出 Base64 字符串。

需要注意的是,图片文件的大小可能非常大,可能会导致内存溢出。为了避免这种情况,可以使用 BufferedInputStream 来读取文件数据,并使用一个缓冲区来分段读取文件数据。例如:

import java.io.*;
import java.util.Base64;

public class ImageToBase64 {
    public static void main(String[] args) throws IOException {
        File file = new File('image.jpg');
        BufferedInputStream inputStream = new BufferedInputStream(new FileInputStream(file));
        ByteArrayOutputStream outputStream = new ByteArrayOutputStream();

        byte[] buffer = new byte[1024];
        int len;
        while ((len = inputStream.read(buffer)) != -1) {
            outputStream.write(buffer, 0, len);
        }

        String base64 = Base64.getEncoder().encodeToString(outputStream.toByteArray());
        System.out.println(base64);
    }
}

在上面的代码中,我们将 FileInputStream 替换为 BufferedInputStream,并将数据写入一个 ByteArrayOutputStream 中。这样可以避免将整个文件读入内存中。

注意,使用 BufferedInputStreamByteArrayOutputStream 时需要手动关闭这些流。

Java 图片流转 Base64 字符串:高效实现与优化

原文地址: https://www.cveoy.top/t/topic/nAxM 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录