读取InputStream数据到byte数组中
您可以使用java.io包中的ByteArrayOutputStream类和InputStream类来完成此操作。将数据读取到字节数组中是为了便于将其转换为Base64编码。
以下是一个简单的示例代码:
InputStream inputStream = ...;
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
byte[] buffer = new byte[4096];
int bytesRead = -1;
while ((bytesRead = inputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, bytesRead);
byte[] data = outputStream.toByteArray();
使用Java 8的Base64类进行编码
在Java 8中,您可以使用Base64类轻松地将字节数组转换为Base64编码的字符串。以下是一个简单的示例代码:
String base64String = Base64.getEncoder().encodeToString(data);
这将返回一个Base64编码的字符串,其中包含InputStream对象的数据。
完整的示例代码如下:
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.util.Base64;
public class InputStreamToBase64 {
public static String convertToBase64(InputStream inputStream) throws Exception {
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
byte[] buffer = new byte[4096];
int bytesRead = -1;
while ((bytesRead = inputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, bytesRead);
byte[] data = outputStream.toByteArray();
String base64String = Base64.getEncoder().encodeToString(data);
return base64String;
请注意,这只是一个示例代码,您需要根据自己的具体需求进行调整。