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.
17 r
:= strings
.NewReader("some io.Reader stream to be read\n")
19 if _
, err
:= io
.Copy(os
.Stdout
, r
); err
!= nil {
24 // some io.Reader stream to be read
27 func ExampleCopyBuffer() {
28 r1
:= strings
.NewReader("first reader\n")
29 r2
:= strings
.NewReader("second reader\n")
30 buf
:= make([]byte, 8)
32 // buf is used here...
33 if _
, err
:= io
.CopyBuffer(os
.Stdout
, r1
, buf
); err
!= nil {
37 // ... reused here also. No need to allocate an extra buffer.
38 if _
, err
:= io
.CopyBuffer(os
.Stdout
, r2
, buf
); err
!= nil {
48 r
:= strings
.NewReader("some io.Reader stream to be read")
50 if _
, err
:= io
.CopyN(os
.Stdout
, r
, 4); err
!= nil {
58 func ExampleReadAtLeast() {
59 r
:= strings
.NewReader("some io.Reader stream to be read\n")
61 buf
:= make([]byte, 14)
62 if _
, err
:= io
.ReadAtLeast(r
, buf
, 4); err
!= nil {
65 fmt
.Printf("%s\n", buf
)
67 // buffer smaller than minimal read size.
68 shortBuf
:= make([]byte, 3)
69 if _
, err
:= io
.ReadAtLeast(r
, shortBuf
, 4); err
!= nil {
70 fmt
.Println("error:", err
)
73 // minimal read size bigger than io.Reader stream
74 longBuf
:= make([]byte, 64)
75 if _
, err
:= io
.ReadAtLeast(r
, longBuf
, 64); err
!= nil {
76 fmt
.Println("error:", err
)
81 // error: short buffer
82 // error: unexpected EOF
85 func ExampleReadFull() {
86 r
:= strings
.NewReader("some io.Reader stream to be read\n")
88 buf
:= make([]byte, 4)
89 if _
, err
:= io
.ReadFull(r
, buf
); err
!= nil {
92 fmt
.Printf("%s\n", buf
)
94 // minimal read size bigger than io.Reader stream
95 longBuf
:= make([]byte, 64)
96 if _
, err
:= io
.ReadFull(r
, longBuf
); err
!= nil {
97 fmt
.Println("error:", err
)
102 // error: unexpected EOF
105 func ExampleWriteString() {
106 if _
, err
:= io
.WriteString(os
.Stdout
, "Hello World"); err
!= nil {
110 // Output: Hello World
113 func ExampleLimitReader() {
114 r
:= strings
.NewReader("some io.Reader stream to be read\n")
115 lr
:= io
.LimitReader(r
, 4)
117 if _
, err
:= io
.Copy(os
.Stdout
, lr
); err
!= nil {
125 func ExampleMultiReader() {
126 r1
:= strings
.NewReader("first reader ")
127 r2
:= strings
.NewReader("second reader ")
128 r3
:= strings
.NewReader("third reader\n")
129 r
:= io
.MultiReader(r1
, r2
, r3
)
131 if _
, err
:= io
.Copy(os
.Stdout
, r
); err
!= nil {
136 // first reader second reader third reader
139 func ExampleTeeReader() {
140 var r io
.Reader
= strings
.NewReader("some io.Reader stream to be read\n")
142 r
= io
.TeeReader(r
, os
.Stdout
)
144 // Everything read from r will be copied to stdout.
145 if _
, err
:= io
.ReadAll(r
); err
!= nil {
150 // some io.Reader stream to be read
153 func ExampleSectionReader() {
154 r
:= strings
.NewReader("some io.Reader stream to be read\n")
155 s
:= io
.NewSectionReader(r
, 5, 17)
157 if _
, err
:= io
.Copy(os
.Stdout
, s
); err
!= nil {
165 func ExampleSectionReader_Read() {
166 r
:= strings
.NewReader("some io.Reader stream to be read\n")
167 s
:= io
.NewSectionReader(r
, 5, 17)
169 buf
:= make([]byte, 9)
170 if _
, err
:= s
.Read(buf
); err
!= nil {
174 fmt
.Printf("%s\n", buf
)
180 func ExampleSectionReader_ReadAt() {
181 r
:= strings
.NewReader("some io.Reader stream to be read\n")
182 s
:= io
.NewSectionReader(r
, 5, 17)
184 buf
:= make([]byte, 6)
185 if _
, err
:= s
.ReadAt(buf
, 10); err
!= nil {
189 fmt
.Printf("%s\n", buf
)
195 func ExampleSectionReader_Seek() {
196 r
:= strings
.NewReader("some io.Reader stream to be read\n")
197 s
:= io
.NewSectionReader(r
, 5, 17)
199 if _
, err
:= s
.Seek(10, io
.SeekStart
); err
!= nil {
203 if _
, err
:= io
.Copy(os
.Stdout
, s
); err
!= nil {
211 func ExampleSectionReader_Size() {
212 r
:= strings
.NewReader("some io.Reader stream to be read\n")
213 s
:= io
.NewSectionReader(r
, 5, 17)
215 fmt
.Println(s
.Size())
221 func ExampleSeeker_Seek() {
222 r
:= strings
.NewReader("some io.Reader stream to be read\n")
224 r
.Seek(5, io
.SeekStart
) // move to the 5th char from the start
225 if _
, err
:= io
.Copy(os
.Stdout
, r
); err
!= nil {
229 r
.Seek(-5, io
.SeekEnd
)
230 if _
, err
:= io
.Copy(os
.Stdout
, r
); err
!= nil {
235 // io.Reader stream to be read
239 func ExampleMultiWriter() {
240 r
:= strings
.NewReader("some io.Reader stream to be read\n")
242 var buf1
, buf2 bytes
.Buffer
243 w
:= io
.MultiWriter(&buf1
, &buf2
)
245 if _
, err
:= io
.Copy(w
, r
); err
!= nil {
249 fmt
.Print(buf1
.String())
250 fmt
.Print(buf2
.String())
253 // some io.Reader stream to be read
254 // some io.Reader stream to be read
261 fmt
.Fprint(w
, "some io.Reader stream to be read\n")
265 if _
, err
:= io
.Copy(os
.Stdout
, r
); err
!= nil {
270 // some io.Reader stream to be read
273 func ExampleReadAll() {
274 r
:= strings
.NewReader("Go is a general-purpose language designed with systems programming in mind.")
276 b
, err
:= io
.ReadAll(r
)
284 // Go is a general-purpose language designed with systems programming in mind.