| 14 | } |
| 15 | |
| 16 | func main() { |
| 17 | |
| 18 | dat, err := os.ReadFile("tmp/dat") |
| 19 | check(err) |
| 20 | fmt.Print(string(dat)) |
| 21 | |
| 22 | f, err := os.Open("tmp/dat") |
| 23 | check(err) |
| 24 | |
| 25 | b1 := make([]byte, 5) |
| 26 | n1, err := f.Read(b1) |
| 27 | check(err) |
| 28 | fmt.Printf("%d bytes: %s\n", n1, string(b1[:n1])) |
| 29 | |
| 30 | o2, err := f.Seek(6, 0) |
| 31 | check(err) |
| 32 | b2 := make([]byte, 2) |
| 33 | n2, err := f.Read(b2) |
| 34 | check(err) |
| 35 | fmt.Printf("%d bytes @ %d: ", n2, o2) |
| 36 | fmt.Printf("%v\n", string(b2[:n2])) |
| 37 | |
| 38 | o3, err := f.Seek(6, 0) |
| 39 | check(err) |
| 40 | b3 := make([]byte, 2) |
| 41 | n3, err := io.ReadAtLeast(f, b3, 2) |
| 42 | check(err) |
| 43 | fmt.Printf("%d bytes @ %d: %s\n", n3, o3, string(b3)) |
| 44 | |
| 45 | _, err = f.Seek(0, 0) |
| 46 | check(err) |
| 47 | |
| 48 | r4 := bufio.NewReader(f) |
| 49 | b4, err := r4.Peek(5) |
| 50 | check(err) |
| 51 | fmt.Printf("5 bytes: %s\n", string(b4)) |
| 52 | |
| 53 | f.Close() |
| 54 | } |