
go 语言的标准库 io 包主要定义了常用的 io接口,具体如如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
|
type Reader interface { Read(p []byte) (n int, err error) }
type Writer interface { Write(p []byte) (n int, err error) }
type Closer interface { Close() error }
type Seeker interface { Seek(offset int64, whence int) (int64, error) }
type ReaderAt interface { ReadAt(p []byte, off int64) (n int, err error) }
type ReadSeeker interface { Reader Seeker }
type WriteCloser interface { Writer Closer }
type WriteSeeker interface { Writer Seeker }
type ReadWriter interface { Reader Writer }
type ReadWriteCloser interface { Reader Writer Closer }
type ReadWriteSeeker interface { Reader Writer Seeker }
|
实现了上面接口的包如下:
- strings.Reader 实现了 io.Reader
- os.File 同时实现了 io.Reader 和 io.Writer
- net.conn 实现了 io.Reader, io.Writer, io.Close
- bufio.Reader/Writer 分别实现了io.Reader 和 io.Writer
- bytes.Buffer 同时实现了 io.Reader 和 io.Writer
- bytes.Reader 实现了io.Reader
ioutil
1 2
|
func (r io.Reader) ([]byte, error)
|
读取文件
1
|
dataBytes, err := ioutil.ReadFile(myFile)
|
近期评论