为什么ReadRequest使用bufio.Reader?

时间:2014-02-12 20:52:49

标签: go

方法http.ReadRequest需要bufio.Reader而不是io.Reader。这背后的原因是什么?

1 个答案:

答案 0 :(得分:0)

无论如何它都会使用缓冲的阅读器。但由于io.Reader性质,它不会自动将bufio.Reader包装到缓冲区中 - 它可以从算法实际需要的基础io.Reader中获取更多数据。并且,由于底层io.Reader无法推回超过数据的内容,因此它将保留在该缓冲区中。在自动装配的情况下,在读取请求并且io.Reader损坏后,缓冲区将丢失。因此,它要求您明确地包装您的阅读器以防止数据丢失。