java response 接收文件流
时间: 2024-10-25 11:16:29 浏览: 18
Java用文件流下载网络文件示例代码
在Java中,当服务器需要接收客户端发送的文件流(例如上传文件)时,通常会使用`HttpServletResponse`类配合`OutputStream`。以下是一个简单的步骤:
1. **创建HTTP响应**:
首先,你需要创建一个`HttpServletResponse`实例,这通常是框架如Spring MVC或者Servlet提供的。
```java
response.setContentType("multipart/form-data"); // 设置内容类型支持文件上传
```
2. **打开输出流**:
调用`getOutputStream()`方法获取到输出流,这个流可以用于接收客户端的数据。
```java
OutputStream outputStream = response.getOutputStream();
```
3. **读取文件流**:
客户端发送文件时,数据通常是以二进制形式通过`InputStream`的形式传输过来。你可以设置一个`BufferedInputStream`来处理它,并逐字节写入到`OutputStream`中。
```java
FileItemFactory factory = new DiskFileItemFactory(); // 创建工厂实例
ServletFileUpload upload = new ServletFileUpload(factory);
List<FileItem> items = upload.parseRequest(request); // 从请求解析文件
for (FileItem item : items) {
if (!item.isFormField()) { // 检查是否是文件项
InputStream inputStream = item.getInputStream();
byte[] buffer = new byte[1024];
int length;
try {
while ((length = inputStream.read(buffer)) > 0) {
outputStream.write(buffer, 0, length);
}
} finally {
inputStream.close();
}
}
}
```
4. **关闭资源**:
最后别忘了关闭输出流以及文件输入流。
```java
outputStream.flush();
outputStream.close();
```
阅读全文