import "bufio"

I/Oのバッファリング機能を提供します。io.Reader・io.Writerをラップし、別のオブジェクト(ReaderまたはWriter)を作成します。インタフェースは同じままでバッファリングやその他便利な機能を追加します。

パッケージファイル

bufio.go

変数

var (
    ErrInvalidUnreadByte os.Error = &Error{"bufio: invalid use of UnreadByte"}
    ErrInvalidUnreadRune os.Error = &Error{"bufio: invalid use of UnreadRune"}
    ErrBufferFull        os.Error = &Error{"bufio: buffer full"}
    ErrNegativeCount     os.Error = &Error{"bufio: negative count"}
)

BufSizeError型

BufSizeErrorは、バッファサイズ不正を表すエラーです。

type BufSizeError int

(BufSizeError) String関数

func (b BufSizeError) String() string

Error型

このパッケージで使用されるエラーです。

type Error struct {
    os.ErrorString
}

ReadWriter

ReadWriterは、ReaderとWriterのポインタを格納します。これはio.ReadWriterインタフェースの実装です。

type ReadWriter struct {
    *Reader
    *Writer
}

NewReadWriter関数

func NewReadWriter(r *Reader, w *Writer) *ReadWriter

NewReadWriterは、rとwを処理する新しいReadWriterを作成します。

Reader型

Readerはio.Readerオブジェクトにバッファリング機能を付加します。

type Reader struct {
    // contains unexported fields
}

NewReader関数

func NewReader(rd io.Reader) *Reader

NewReaderは、新しいReaderを返します。バッファサイズはデフォルト値です。

NewReaderSize関数

func NewReaderSize(rd io.Reader, size int) (*Reader, os.Error)

NewReaderSizeは、新しいReaderを作成します。バッファサイズはsizeパラメータで指定したサイズです。sizeはゼロより大きい値を指定してください。パラメータrdがすでにbufio.Readerで、かつパラメータsizeで指定した以上のバッファを有している場合は、新しいオブジェクトは作らず、渡されたパラメータrdをそのまま返します。この関数はReaderとエラー情報を返します。

(*Reader) Buffered関数

func (b *Reader) Buffered() int

Bufferedは、カレントバッファから読み取り可能なバイト数を返します。

(*Reader) Peek関数

func (b *Reader) Peek(n int) ([]byte, os.Error)

Peekは、次のnバイトをreaderを進めることなく返します。byteは次のreadの呼び出しの際に有効でなくなります。Peekが、nバイトより少ないデータを返したときは、その少なくなった理由も返します。nがbのバッファサイズより大きいときは、ErrBufferFullエラーとなります。

(*Reader) Read関数

func (b *Reader) Read(p []byte) (n int, err os.Error)

Readは、パラメータpにデータを読み込み、読み込んだバイト数を返します。これは、内部のReaderのReadを、多くても1回だけ呼び出すので、nはlen(p)より小さい値になることがあります。ファイルの終わりに達したときはnnは0、errにはos.EOFが返ります。

(*Reader) ReadByte関数

func (b *Reader) ReadByte() (c byte, err os.Error)

ReadByteは、1バイト読み込みその値を返します。読み込むデータがないときはエラーが返ります。

(*Reader) ReadBytes関数

func (b *Reader) ReadBytes(delim byte) (line []byte, err os.Error)

ReadBytesは、パラメータdelimで指定したデリミタが現れるまで読み込みを行い、スライスを返します。返されるスライスにはデリミタが含まれます。デリミタまで読み込む前にエラーが発生したときは、エラーが発生する直前までのデータとエラー情報(多くはos.EOF)を返します。lineパラメータに返されたデータがデリミタで終了していないときはerr != nilとなります。

(*Reader) ReadRune関数

func (b *Reader) ReadRune() (rune int, size int, err os.Error)

ReadRuneは、UTF-8エンコードされたUnicode文字を一文字読み込みruneにセットします。読み込んだバイト数はsizeにセットされます。

(*Reader) ReadSlice関数

func (b *Reader) ReadSlice(delim byte) (line []byte, err os.Error)

ReadSliceは、パラメータdelimで指定したデリミタが現れるまで読み込みを行い、読み込んだデータをスライスとして返します。返されるスライスは読み込みバッファを参照しているため、次の呼び出しで無効となります。デリミタまで読み込む前にエラーが発生したときは、エラーが発生する直前までの全データとエラー情報(多くはos.EOF)を返します。バッファがデリミタを読み込む前にいっぱいになるとErrBufferFullエラーが返ります。ReadSliceは次回のI/O操作で、今回返されたデータを上書きするため、できるだけReadBytesやReadStringメソッドを代わりに使用してください。lineパラメータに返されたデータがデリミタで終了していないときはerr != nilとなります。

(*Reader) ReadString関数

func (b *Reader) ReadString(delim byte) (line string, err os.Error)

ReadStringは、パラメータdelimで指定したデリミタが現れるまで読み込みを行い、読み込んだ文字列を返します。返される文字列にはデリミタが含まれます。デリミタまで読み込む前にエラーが発生したときは、エラーが発生する直前までのデータとエラー情報(多くはos.EOF)を返します。lineパラメータに返されたデータがデリミタで終了していないときはerr != nilとなります。

(*Reader) UnreadByte関数

func (b *Reader) UnreadByte() os.Error

UnreadByteは、最終バイトを未読み込み状態にします。一番最後に読み込まれた1バイトだけが未読み込みになります。

(*Reader) UnreadRune関数

func (b *Reader) UnreadRune() os.Error

UnreadRuneは、最終ルーンを未読み込み状態にします。バッファへの直近のread操作がReadRuneでないときは、UnreadRuneはエラーを返します。(これは、どの読み込み操作からでも読み戻せるUnreadByteのようにするには難しいためです。)

Writer型

Writerはio. Writerオブジェクトにバッファリング機能を付加します。

type Writer struct {
    // contains unexported fields
}

NewWriter関数

func NewWriter(wr io.Writer) *Writer

NewWriterは、新しいWriterを返します。バッファサイズはデフォルト値です。

NewWriterSize関数

func NewWriterSize(wr io.Writer, size int) (*Writer, os.Error)

NewWriterSizeは新しいWriterを作成します。バッファサイズはsizeパラメータで指定したサイズです。sizeはゼロより大きい値を指定してください。パラメータwrがすでにbufio. Writerで、かつパラメータsizeで指定した以上のバッファを有している場合は、新しいオブジェクトは作らず、渡されたパラメータwrをそのまま返します。この関数はWriterとエラー情報を返します。

(*Writer) Available関数

func (b *Writer) Available() int

Availableは、バッファ内の未使用バイト数を返します。

(*Writer) Buffered関数

func (b *Writer) Buffered() int

Bufferedは、カレントバッファに書き込まれているバイト数を返します。

(*Writer) Flush関数

func (b *Writer) Flush() os.Error

Flushは、ラップしているio.Writerへ、バッファリングしているデータを書き込みます。

(*Writer) Write関数

func (b *Writer) Write(p []byte) (nn int, err os.Error)

Writeは、パラメータpをバッファに書き込み、書き込んだバイト数を返します。nnの値がバッファpのサイズより小さいときは、その理由がerrに設定されます。

(*Writer) WriteByte関数

func (b *Writer) WriteByte(c byte) os.Error

WriteByteは、1バイトの書き込みを行います。

func (*Writer) WriteRune

func (b *Writer) WriteRune(rune int) (size int, err os.Error)

WriteRuneは、Unicodeコードポイントをひとつ書きこみます。書き込んだバイト数とエラーを返します。

(*Writer) WriteString関数

func (b *Writer) WriteString(s string) (int, os.Error)

WriteStringは文字列を書き込みます。書き込んだバイト数とエラーを返します。返されたバイト数がlen(s)未満のときは、書き込みバイト数が足りなかった理由がエラーとして返ります。