将输入流转换为 base64 字符串

2022-09-01 21:43:17

有一种方法可以将 a 转换为 a ,并将其编码为 base64,对吗?InputStreamString

在我的函数中,我获取参数,并需要将其插入到 Oracle 数据库表中的 BLOB 字段中。InputStream

有没有办法做到这一点?

(我的数据库对象包含用于保存图像的字符串字段,但我无法找到任何方法将字符串转换为 base 64 格式的字符串。InputStream


答案 1

有一个很好的方法是使用IOUtils将输入流转换为...Byte Array

类似的东西

    InputStream is;
    byte[] bytes = IOUtils.toByteArray(is);

在这里,您可以使用转换为 .Base64Byte ArrayString

示例代码

    String encoded = Base64.getEncoder().encodeToString(bytes);

现在,您可以使用 .String


答案 2

您可以使用 Base64 API 尝试类似这样的操作。

InputStream finput = new FileInputStream(file);
byte[] imageBytes = new byte[(int)file.length()];
finput.read(imageBytes, 0, imageBytes.length);
finput.close();
String imageStr = Base64.encodeBase64String(imageBytes);

使用这个:

http://commons.apache.org/proper/commons-codec/archives/1.9/apidocs/org/apache/commons/codec/binary/Base64.html