package main import ( "bufio" "fmt" "io" "os" ) func main() { var inFile, outFile *os.File var err error if inFile, err = os.Open("in.txt"); err != nil { fmt.Println(err.Error()) inFile = os.Stdin } defer inFile.Close() if outFile, err = os.OpenFile("out.txt", os.O_RDWR, 0766); err != nil { fmt.Println(err.Error()) outFile = os.Stdout } defer outFile.Close() reader := bufio.NewReader(inFile) writer := bufio.NewWriter(outFile) var s string for { if line, err := reader.ReadString('\n'); err == nil { s += line } else if err == io.EOF { s += line break } else { break } } if _, err := writer.WriteString(s); err == nil { writer.Flush() } else { fmt.Println(err.Error()) } }