How use io.Writer in struct?

Viewed 29

Why when i try use Write() to writer from Writer nothing happens?

(I'm trying to implement the basic bufio methods myself)

package main

import (
    "io"
    "os"
)

type Writer struct {
    writer         io.Writer
    buferred_bytes []byte
}

func (w *Writer) Flush() {
    w.writer.Write(w.buferred_bytes)

    w.buferred_bytes = w.buferred_bytes[:0]
}

func (w *Writer) Write(data []byte) {
    for i := 0; i < len(data); i++ {
        if len(w.buferred_bytes) == cap(w.buferred_bytes) {
            w.Flush()
        }

        w.buferred_bytes = append(w.buferred_bytes, data[i])
    }
}

func NewWriter(writer_thread io.Writer, buffer_size int) *Writer {
    return &Writer{writer: writer_thread, buferred_bytes: make([]byte, 0, buffer_size)}
}

func main() {

    w := NewWriter(os.Stdin, 4)
    w.Write([]byte("Hello world my friend"))

}

I think i should use pointer to io.Writer, but im not sure

1 Answers

I found a problem. Im using os.Stdin instead os.Stdout

Related