【发布时间】:2012-11-27 15:58:46
【问题描述】:
我在 java 中构建了一个 Web 服务器,我获取请求(作为套接字)并对其进行处理。 我需要先打印整个请求,然后再进行处理。 这是我的代码 sn-p:
public HttpRequest(Socket socket) throws Exception
{
this.socket = socket;
BufferedReader input = new BufferedReader(new InputStreamReader(socket.getInputStream()));
printRequest(input);
// Do More...
}
问题是,从现在开始,BufferedReader 已经到了尽头,我似乎无法找到让它回到开始的方法。 printRequest() 方法使用 while 循环和 readline() 操作打印来自 BufferedReader 的整个请求。
有什么办法可以解决这个问题吗?
【问题讨论】:
-
作业标签已为deprecated,不应再使用。
-
'我需要先打印整个请求,然后再处理它。'为什么?这将您限制在一个可能使用比实际可用内存更多的内存的实现中,并且还会增加不必要的延迟。在您传递请求块(例如行)时,将它们逐一打印会更有意义。
标签: java sockets bufferedreader