refactor: ifaces io reusable
This commit is contained in:
		@@ -9,17 +9,27 @@
 | 
			
		||||
package main
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"io"
 | 
			
		||||
	"log"
 | 
			
		||||
	"os"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func main() {
 | 
			
		||||
	// stream from the standard input to the in-memory buffer in 32KB data chunks.
 | 
			
		||||
	// os.Stdin.Read(...) -> os.Stdout.Write(...)
 | 
			
		||||
	if _, err := io.Copy(os.Stdout, os.Stdin); err != nil {
 | 
			
		||||
	n, err := transfer()
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		log.Fatal(err)
 | 
			
		||||
	}
 | 
			
		||||
	fmt.Printf("%d bytes transferred.\n", n)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func transfer() (n int64, err error) {
 | 
			
		||||
	// stream from the standard input to the in-memory buffer in 32KB data chunks.
 | 
			
		||||
	// os.Stdin.Read(...) -> os.Stdout.Write(...)
 | 
			
		||||
	if n, err = io.Copy(os.Stdout, os.Stdin); err != nil {
 | 
			
		||||
		return n, err
 | 
			
		||||
	}
 | 
			
		||||
	return n, err
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// ioCopy streams from a file to another file.
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user