将BufferedImage对象转换为InputStream或BLOB的方法如下:
import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import javax.imageio.ImageIO;
public class BufferedImageToInputStream {
public static InputStream convert(BufferedImage bufferedImage, String format) throws IOException {
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
ImageIO.write(bufferedImage, format, byteArrayOutputStream);
InputStream inputStream = new ByteArrayInputStream(byteArrayOutputStream.toByteArray());
return inputStream;
}
}
import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Blob;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.imageio.ImageIO;
public class BufferedImageToBLOB {
public static void convert(BufferedImage bufferedImage, String format, String jdbcUrl, String user, String password) throws IOException, SQLException {
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
ImageIO.write(bufferedImage, format, byteArrayOutputStream);
InputStream inputStream = new ByteArrayInputStream(byteArrayOutputStream.toByteArray());
Connection connection = DriverManager.getConnection(jdbcUrl, user, password);
String sql = "INSERT INTO your_table_name (your_blob_column) VALUES (?)";
PreparedStatement preparedStatement = connection.prepareStatement(sql);
preparedStatement.setBlob(1, inputStream);
preparedStatement.executeUpdate();
preparedStatement.close();
connection.close();
}
}
其中,your_table_name
和your_blob_column
分别表示你要插入数据的表名和BLOB列名。
注意:在使用这些代码时,请确保已经正确配置了数据库连接信息和表结构。
领取专属 10元无门槛券
手把手带您无忧上云