github.com/shogo82148/std@v1.22.1-0.20240327122250-4e474527810c/encoding/csv/writer.go (about) 1 // Copyright 2011 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. 4 5 package csv 6 7 import ( 8 "github.com/shogo82148/std/bufio" 9 "github.com/shogo82148/std/io" 10 ) 11 12 // Writerは、CSVエンコーディングを使用してレコードを書き込みます。 13 // 14 // [NewWriter] によって返された場合、Writerは改行で終わるレコードを書き込み、 15 // フィールド区切り文字として「,」を使用します。 16 // 最初の [Writer.Write] または [Writer.WriteAll] 呼び出しの前に、エクスポートされたフィールドをカスタマイズすることができます。 17 // 18 // [Writer.Comma] はフィールドの区切り文字です。 19 // 20 // [Writer.UseCRLF] がtrueの場合、Writerは各出力行を\nではなく\r\nで終了します。 21 // 22 // 個々のレコードの書き込みはバッファリングされます。 23 // すべてのデータが書き込まれた後、クライアントは [Writer.Flush] メソッドを呼び出して、 24 // 基礎となる [io.Writer] にすべてのデータが転送されたことを保証する必要があります。 25 // 発生したエラーは、[Writer.Error] メソッドを呼び出して確認する必要があります。 26 type Writer struct { 27 Comma rune 28 UseCRLF bool 29 w *bufio.Writer 30 } 31 32 // NewWriterは、wに書き込む新しいWriterを返します。 33 func NewWriter(w io.Writer) *Writer 34 35 // Writeは、必要に応じてクォーティングを行い、単一のCSVレコードをwに書き込みます。 36 // レコードは、各文字列が1つのフィールドである文字列のスライスです。 37 // 書き込みはバッファリングされるため、レコードが基礎となる [io.Writer] に書き込まれることを保証するには、 38 // 最終的に [Writer.Flush] を呼び出す必要があります。 39 func (w *Writer) Write(record []string) error 40 41 // Flushは、バッファリングされたデータを基礎となる [io.Writer] に書き込みます。 42 // Flush中にエラーが発生したかどうかを確認するには、[Writer.Error] を呼び出します。 43 func (w *Writer) Flush() 44 45 // Errorは、以前の [Writer.Write] または [Writer.Flush] 中に発生したエラーを報告します。 46 func (w *Writer) Error() error 47 48 // WriteAllは、[Writer.Write] を使用して複数のCSVレコードをwに書き込み、 49 // [Writer.Flush] を呼び出してからFlushからのエラーを返します。 50 func (w *Writer) WriteAll(records [][]string) error