BufferedInputStream 转MultipartFile
时间: 2023-07-18 15:30:33 浏览: 186
InputStream与OutputStream及File间互转
3星 · 编辑精心推荐
在 Java 中,如果你想将一个 `BufferedInputStream` 对象转换为 `MultipartFile` 对象,可以使用 Spring 框架中的 `MockMultipartFile` 类。以下是一个简单的示例代码:
```java
import org.springframework.mock.web.MockMultipartFile;
import org.springframework.web.multipart.MultipartFile;
import java.io.BufferedInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.nio.charset.StandardCharsets;
public class BufferedInputStreamToMultipartFile {
public static MultipartFile convertToMultipartFile(BufferedInputStream inputStream, String fileName) throws IOException {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
int len;
byte[] buffer = new byte[4096];
while ((len = inputStream.read(buffer)) > 0) {
baos.write(buffer, 0, len);
}
byte[] bytes = baos.toByteArray();
inputStream.close();
return new MockMultipartFile(fileName, fileName, "text/plain", bytes);
}
}
```
上述代码中,我们首先使用 `BufferedInputStream` 读取输入流中的数据,并将其转换为字节数组。然后使用 `MockMultipartFile` 创建一个新的 `MultipartFile` 对象,并将字节数组传递给它。最后返回 `MultipartFile` 对象。
需要注意的是,在使用 `MockMultipartFile` 创建 `MultipartFile` 对象时,必须指定文件名、原始文件名和文件类型。你可以根据实际情况修改这些参数。
阅读全文