package main import ( "bufio" "bytes" "fmt" "io" "log" "os" ) const ( chunksize int = 1024 ) var ( data *os.File part []byte err error count int ) func openFile(name string) (byteCount int, buffer *bytes.Buffer) { data, err = os.Open(name) if err != nil { log.Fatal(err) } defer data.Close() reader := bufio.NewReader(data) buffer = bytes.NewBuffer(make([]byte, 0)) part = make([]byte, chunksize) for { if count, err = reader.Read(part); err != nil { break } buffer.Write(part[:count]) } if err != io.EOF { log.Fatal("Error Reading ", filename, ": ", err) } else { err = nil } byteCount = buffer.Len() return } func main() { length, _ := openFile("data.txt") fmt.Println(length) }