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