123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- package yu_io
- import (
- "io"
- )
- // ReadAll
- //
- // @Description: 从流中读取所有数据
- func ReadAll(r io.Reader) []byte {
- j_buf := make([]byte, 0, 8192)
- for {
- if len(j_buf) == cap(j_buf) {
- // Add more capacity (let append pick how much).
- j_buf = append(j_buf, 0)[:len(j_buf)]
- }
- n, err := r.Read(j_buf[len(j_buf):cap(j_buf)])
- j_buf = j_buf[:len(j_buf)+n]
- if err != nil {
- return j_buf
- }
- }
- }
- // ReadAllS
- //
- // @Description: 从流中读取所有数据
- func ReadAllS(r io.Reader) string {
- return string(ReadAll(r))
- }
- // ReadAllClose
- //
- // @Description: 从流中读取所有数据并关闭流
- func ReadAllClose(r io.ReadCloser) []byte {
- defer r.Close()
- return ReadAll(r)
- }
- // ReadAllSClose
- //
- // @Description: 从流中读取所有数据并关闭流
- func ReadAllSClose(r io.ReadCloser) string {
- return string(ReadAllClose(r))
- }
|