gpt4 book ai didi

java - 如何在JAVA中将附件对象转换为ByteArray

转载 作者:行者123 更新时间:2023-12-01 09:29:04 24 4
gpt4 key购买 nike

我正在使用 Apache CXF 在 JAVA 中编写 Web 服务。

所以,我有一个方法,其原型(prototype)如下:

public Response upload(@Multipart("id") int Id, 
@Multipart("file") Attachment attachment) {

现在,我想将此附件转换为 byte[] 。我该怎么做?

最佳答案

以下是读取附件内容并将其存储在字节数组中的方法。或者,您可以直接写入 OutputStream 并跳过到 byte[] 的转换。

        DataHandler dataHandler = attachment.getDataHandler();
final byte[] data;
try (InputStream inputStream = dataHandler.getInputStream()) {
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
final byte[] buffer = new byte[4096];
for (int read = inputStream.read(buffer); read > 0; read = inputStream.read(buffer)) {
outputStream.write(buffer, 0, read);
}
data = outputStream.toByteArray();
}

//todo write data to BLOB

如果您希望提高内存效率,或者附件无法放入内存,则可以直接写入 blob 的输出流。只需将 ByteArrayOutputStream 替换为 OutputStream outputStream = blob.setBinaryStream(1);

关于java - 如何在JAVA中将附件对象转换为ByteArray,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39601003/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com