1 package main
2
3 import (
4 "fmt"
5 "io"
6 "log"
7 "os"
8 )
9
10 func main() {
11 /*
12 Seek(offset int64, whence int) (int64, error),设置指针光标的位置
13 第一个参数:偏移量
14 第二个参数:如何设置
15 0:seekstart,表示相对于文件开始
16 1:seekcurrent,表示相对于当前位置的偏移量
17 2:seekend,表示相对于末尾
18
19
20 // Seek whence values.
21 const (
22 SeekStart = 0 // seek relative to the origin of the file
23 SeekCurrent = 1 // seek relative to the current offset
24 SeekEnd = 2 // seek relative to the end
25 )
26 */
27 fileName := "D:\\Go\\web2\\aa.txt"
28 file, err := os.OpenFile(fileName, os.O_RDWR, os.ModePerm)
29 if err != nil {
30 log.Fatal(err)
31 }
32 defer file.Close()
33
34 // 读写
35 bs := []byte{0}
36 file.Read(bs)
37 fmt.Println(string(bs)) // a
38
39 file.Seek(4, io.SeekStart)
40 file.Read(bs)
41 fmt.Println(string(bs)) // e
42
43 file.Seek(2, 0) // SeekStart
44 file.Read(bs)
45 fmt.Println(string(bs)) // c
46
47 file.Seek(3, io.SeekCurrent)
48 file.Read(bs)
49 fmt.Println(string(bs)) // g
50
51 file.Seek(0, io.SeekEnd)
52 file.WriteString("ABC") // 末尾追加
53 }