将ServletOutputStream变成File
时间: 2023-11-26 15:04:21 浏览: 85
将输出流OutputStream转化为输入流InputStream的方法
将 ServletOutputStream 转换为 File 的过程需要先将数据从 OutputStream 写入到字节数组中,然后再将字节数组写入到文件中。具体实现如下:
```java
import java.io.*;
public class ServletOutputStreamToFile {
/**
* 将 ServletOutputStream 写入的数据保存到文件中
*
* @param outputStream ServletOutputStream
* @param file 要保存到的文件
* @throws IOException
*/
public static void saveToFile(ServletOutputStream outputStream, File file) throws IOException {
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int len;
while ((len = outputStream.read(buffer)) > -1) {
byteArrayOutputStream.write(buffer, 0, len);
}
byteArrayOutputStream.flush();
try (OutputStream fileOutputStream = new FileOutputStream(file)) {
byteArrayOutputStream.writeTo(fileOutputStream);
}
}
}
```
使用时,只需要将 ServletOutputStream 和要保存到的文件传入即可:
```java
ServletOutputStream outputStream = response.getOutputStream();
File file = new File("file.txt");
ServletOutputStreamToFile.saveToFile(outputStream, file);
```
阅读全文