hutool的IoUtil获取HttpServerResponse中的文件
时间: 2023-11-28 09:50:50 浏览: 69
可以使用Hutool的`IoUtil`类中的`write()`方法将`HttpServerResponse`中的文件内容写入到指定的输出流中。
具体的代码示例如下:
```java
import cn.hutool.core.io.IoUtil;
import com.sun.net.httpserver.HttpServer;
import com.sun.net.httpserver.HttpExchange;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.OutputStream;
public class FileServer {
public static void main(String[] args) throws Exception {
HttpServer server = HttpServer.create();
server.createContext("/", FileServer::handleRequest);
server.start();
}
private static void handleRequest(HttpExchange exchange) throws IOException {
String path = exchange.getRequestURI().getPath().substring(1);
String filePath = "path/to/files/" + path;
FileInputStream fileInputStream = new FileInputStream(filePath);
OutputStream outputStream = exchange.getResponseBody();
IoUtil.write(outputStream, true, fileInputStream);
exchange.sendResponseHeaders(200, 0);
outputStream.close();
}
}
```
在上述代码中,`handleRequest()`方法中获取请求路径并拼接成文件路径,然后使用`FileInputStream`打开文件输入流。接着,将`HttpServerResponse`中的输出流作为参数传入`IoUtil`的`write()`方法中,将文件内容写入到输出流中。最后,发送响应状态码并关闭输出流。
阅读全文