1 // Copyright 2015 The Go Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style
3 // license that can be found in the LICENSE file.
16 r := strings.NewReader("some io.Reader stream to be read\n")
18 if _, err := io.Copy(os.Stdout, r); err != nil {
23 // some io.Reader stream to be read
26 func ExampleCopyBuffer() {
27 r1 := strings.NewReader("first reader\n")
28 r2 := strings.NewReader("second reader\n")
29 buf := make([]byte, 8)
31 // buf is used here...
32 if _, err := io.CopyBuffer(os.Stdout, r1, buf); err != nil {
36 // ... reused here also. No need to allocate an extra buffer.
37 if _, err := io.CopyBuffer(os.Stdout, r2, buf); err != nil {
47 r := strings.NewReader("some io.Reader stream to be read")
49 if _, err := io.CopyN(os.Stdout, r, 4); err != nil {
57 func ExampleReadAtLeast() {
58 r := strings.NewReader("some io.Reader stream to be read\n")
60 buf := make([]byte, 14)
61 if _, err := io.ReadAtLeast(r, buf, 4); err != nil {
64 fmt.Printf("%s\n", buf)
66 // buffer smaller than minimal read size.
67 shortBuf := make([]byte, 3)
68 if _, err := io.ReadAtLeast(r, shortBuf, 4); err != nil {
69 fmt.Println("error:", err)
72 // minimal read size bigger than io.Reader stream
73 longBuf := make([]byte, 64)
74 if _, err := io.ReadAtLeast(r, longBuf, 64); err != nil {
75 fmt.Println("error:", err)
80 // error: short buffer
81 // error: unexpected EOF
84 func ExampleReadFull() {
85 r := strings.NewReader("some io.Reader stream to be read\n")
87 buf := make([]byte, 4)
88 if _, err := io.ReadFull(r, buf); err != nil {
91 fmt.Printf("%s\n", buf)
93 // minimal read size bigger than io.Reader stream
94 longBuf := make([]byte, 64)
95 if _, err := io.ReadFull(r, longBuf); err != nil {
96 fmt.Println("error:", err)
101 // error: unexpected EOF
104 func ExampleWriteString() {
105 if _, err := io.WriteString(os.Stdout, "Hello World"); err != nil {
109 // Output: Hello World
112 func ExampleLimitReader() {
113 r := strings.NewReader("some io.Reader stream to be read\n")
114 lr := io.LimitReader(r, 4)
116 if _, err := io.Copy(os.Stdout, lr); err != nil {
124 func ExampleMultiReader() {
125 r1 := strings.NewReader("first reader ")
126 r2 := strings.NewReader("second reader ")
127 r3 := strings.NewReader("third reader\n")
128 r := io.MultiReader(r1, r2, r3)
130 if _, err := io.Copy(os.Stdout, r); err != nil {
135 // first reader second reader third reader
138 func ExampleTeeReader() {
139 var r io.Reader = strings.NewReader("some io.Reader stream to be read\n")
141 r = io.TeeReader(r, os.Stdout)
143 // Everything read from r will be copied to stdout.
144 if _, err := io.ReadAll(r); err != nil {
149 // some io.Reader stream to be read
152 func ExampleSectionReader() {
153 r := strings.NewReader("some io.Reader stream to be read\n")
154 s := io.NewSectionReader(r, 5, 17)
156 if _, err := io.Copy(os.Stdout, s); err != nil {
164 func ExampleSectionReader_Read() {
165 r := strings.NewReader("some io.Reader stream to be read\n")
166 s := io.NewSectionReader(r, 5, 17)
168 buf := make([]byte, 9)
169 if _, err := s.Read(buf); err != nil {
173 fmt.Printf("%s\n", buf)
179 func ExampleSectionReader_ReadAt() {
180 r := strings.NewReader("some io.Reader stream to be read\n")
181 s := io.NewSectionReader(r, 5, 17)
183 buf := make([]byte, 6)
184 if _, err := s.ReadAt(buf, 10); err != nil {
188 fmt.Printf("%s\n", buf)
194 func ExampleSectionReader_Seek() {
195 r := strings.NewReader("some io.Reader stream to be read\n")
196 s := io.NewSectionReader(r, 5, 17)
198 if _, err := s.Seek(10, io.SeekStart); err != nil {
202 if _, err := io.Copy(os.Stdout, s); err != nil {
210 func ExampleSectionReader_Size() {
211 r := strings.NewReader("some io.Reader stream to be read\n")
212 s := io.NewSectionReader(r, 5, 17)
214 fmt.Println(s.Size())
220 func ExampleSeeker_Seek() {
221 r := strings.NewReader("some io.Reader stream to be read\n")
223 r.Seek(5, io.SeekStart) // move to the 5th char from the start
224 if _, err := io.Copy(os.Stdout, r); err != nil {
228 r.Seek(-5, io.SeekEnd)
229 if _, err := io.Copy(os.Stdout, r); err != nil {
234 // io.Reader stream to be read
238 func ExampleMultiWriter() {
239 r := strings.NewReader("some io.Reader stream to be read\n")
241 var buf1, buf2 strings.Builder
242 w := io.MultiWriter(&buf1, &buf2)
244 if _, err := io.Copy(w, r); err != nil {
248 fmt.Print(buf1.String())
249 fmt.Print(buf2.String())
252 // some io.Reader stream to be read
253 // some io.Reader stream to be read
260 fmt.Fprint(w, "some io.Reader stream to be read\n")
264 if _, err := io.Copy(os.Stdout, r); err != nil {
269 // some io.Reader stream to be read
272 func ExampleReadAll() {
273 r := strings.NewReader("Go is a general-purpose language designed with systems programming in mind.")
275 b, err := io.ReadAll(r)
283 // Go is a general-purpose language designed with systems programming in mind.