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