131 lines · 2.6 KB · Go
RawDownload
// 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. package csv_test import (	"encoding/csv"	"fmt"	"io"	"log"	"os"	"strings") func ExampleReader() {	in := `first_name,last_name,username"Rob","Pike",robKen,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 ignoredKen;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",robKen,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}