| // Copyright 2015 The Go Authors. All rights reserved. | 
 | // Use of this source code is governed by a BSD-style | 
 | // license that can be found in the LICENSE file. | 
 |  | 
 | // +build ignore | 
 |  | 
 | package csv_test | 
 |  | 
 | import ( | 
 | 	"encoding/csv" | 
 | 	"fmt" | 
 | 	"io" | 
 | 	"log" | 
 | 	"os" | 
 | 	"strings" | 
 | ) | 
 |  | 
 | func ExampleReader() { | 
 | 	in := `first_name,last_name,username | 
 | "Rob","Pike",rob | 
 | Ken,Thompson,ken | 
 | "Robert","Griesemer","gri" | 
 | ` | 
 | 	r := csv.NewReader(strings.NewReader(in)) | 
 |  | 
 | 	for { | 
 | 		record, err := r.Read() | 
 | 		if err == io.EOF { | 
 | 			break | 
 | 		} | 
 | 		if err != nil { | 
 | 			log.Fatal(err) | 
 | 		} | 
 |  | 
 | 		fmt.Println(record) | 
 | 	} | 
 | 	// Output: | 
 | 	// [first_name last_name username] | 
 | 	// [Rob Pike rob] | 
 | 	// [Ken Thompson ken] | 
 | 	// [Robert Griesemer gri] | 
 | } | 
 |  | 
 | // This example shows how csv.Reader can be configured to handle other | 
 | // types of CSV files. | 
 | func ExampleReader_options() { | 
 | 	in := `first_name;last_name;username | 
 | "Rob";"Pike";rob | 
 | # lines beginning with a # character are ignored | 
 | Ken;Thompson;ken | 
 | "Robert";"Griesemer";"gri" | 
 | ` | 
 | 	r := csv.NewReader(strings.NewReader(in)) | 
 | 	r.Comma = ';' | 
 | 	r.Comment = '#' | 
 |  | 
 | 	records, err := r.ReadAll() | 
 | 	if err != nil { | 
 | 		log.Fatal(err) | 
 | 	} | 
 |  | 
 | 	fmt.Print(records) | 
 | 	// Output: | 
 | 	// [[first_name last_name username] [Rob Pike rob] [Ken Thompson ken] [Robert Griesemer gri]] | 
 | } | 
 |  | 
 | func ExampleReader_ReadAll() { | 
 | 	in := `first_name,last_name,username | 
 | "Rob","Pike",rob | 
 | Ken,Thompson,ken | 
 | "Robert","Griesemer","gri" | 
 | ` | 
 | 	r := csv.NewReader(strings.NewReader(in)) | 
 |  | 
 | 	records, err := r.ReadAll() | 
 | 	if err != nil { | 
 | 		log.Fatal(err) | 
 | 	} | 
 |  | 
 | 	fmt.Print(records) | 
 | 	// Output: | 
 | 	// [[first_name last_name username] [Rob Pike rob] [Ken Thompson ken] [Robert Griesemer gri]] | 
 | } | 
 |  | 
 | func ExampleWriter() { | 
 | 	records := [][]string{ | 
 | 		{"first_name", "last_name", "username"}, | 
 | 		{"Rob", "Pike", "rob"}, | 
 | 		{"Ken", "Thompson", "ken"}, | 
 | 		{"Robert", "Griesemer", "gri"}, | 
 | 	} | 
 |  | 
 | 	w := csv.NewWriter(os.Stdout) | 
 |  | 
 | 	for _, record := range records { | 
 | 		if err := w.Write(record); err != nil { | 
 | 			log.Fatalln("error writing record to csv:", err) | 
 | 		} | 
 | 	} | 
 |  | 
 | 	// Write any buffered data to the underlying writer (standard output). | 
 | 	w.Flush() | 
 |  | 
 | 	if err := w.Error(); err != nil { | 
 | 		log.Fatal(err) | 
 | 	} | 
 | 	// Output: | 
 | 	// first_name,last_name,username | 
 | 	// Rob,Pike,rob | 
 | 	// Ken,Thompson,ken | 
 | 	// Robert,Griesemer,gri | 
 | } | 
 |  | 
 | func ExampleWriter_WriteAll() { | 
 | 	records := [][]string{ | 
 | 		{"first_name", "last_name", "username"}, | 
 | 		{"Rob", "Pike", "rob"}, | 
 | 		{"Ken", "Thompson", "ken"}, | 
 | 		{"Robert", "Griesemer", "gri"}, | 
 | 	} | 
 |  | 
 | 	w := csv.NewWriter(os.Stdout) | 
 | 	w.WriteAll(records) // calls Flush internally | 
 |  | 
 | 	if err := w.Error(); err != nil { | 
 | 		log.Fatalln("error writing csv:", err) | 
 | 	} | 
 | 	// Output: | 
 | 	// first_name,last_name,username | 
 | 	// Rob,Pike,rob | 
 | 	// Ken,Thompson,ken | 
 | 	// Robert,Griesemer,gri | 
 | } |