读文件
全量读
package main
import (
"fmt"
"io/ioutil"
)
func main() {
dat, err := ioutil.ReadFile("./main.go")
fmt.Println(err)
fmt.Println(string(dat))
}带缓冲区读
任意位置读
项目实战
最后更新于
package main
import (
"fmt"
"os"
)
func main() {
f, _ := os.Open("./main.go")
defer f.Close()
buf := make([]byte, 16)
f.Read(buf)
fmt.Println(string(buf))
}package main
impackage main
import (
"fmt"
"os"
)
func main() {
f, _ := os.Open("./main.go")
defer f.Close()
b1 := make([]byte, 2)
f.Seek(5, 0)
f.Read(b1)
fmt.Println(string(b1))
}gepackage main
import (
"fmt"
"os"
)
func main() {
f, _ := os.Open("./main.go")
defer f.Close()
b1 := make([]byte, 2)
f.ReadAt(b1, 5)
fmt.Println(string(b1))
}gepackage main
import (
"fmt"
"os"
"time"
)
func main() {
f, _ := os.Open("./main.go")
defer f.Close()
for i := 0; i < 5; i++ {
go func() {
b1 := make([]byte, 2)
f.Seek(5, 0)
f.Read(b1)
fmt.Println(string(b1))
f.Seek(2, 0)
f.Read(b1)
fmt.Println(string(b1))
}()
}
time.Sleep(time.Second)
}ge
ge
ge
ck
ck
ai
ck
m
ck
ckpackage main
import (
"fmt"
"os"
"time"
)
func main() {
f, _ := os.Open("./main.go")
defer f.Close()
for i := 0; i < 5; i++ {
go func() {
b1 := make([]byte, 2)
f.ReadAt(b1, 5)
fmt.Println(string(b1))
f.ReadAt(b1, 2)
fmt.Println(string(b1))
}()
}
time.Sleep(time.Second)
}ge
ge
ck
ck
ge
ge
ck
ck
ge
ckpackage main
import (
"fmt"
"io"
"os"
)
func main() {
f, _ := os.Open("./main.go")
defer f.Close()
content := make([]byte, 0)
buf := make([]byte, 16)
for {
n, err := f.Read(buf)
if err == io.EOF {
break
}
if n == 16 {
content = append(content, buf...)
} else {
content = append(content, buf[0:n]...)
}
}
fmt.Println(string(content))
}package main
import (
"bufio"
"fmt"
"io"
"os"
)
func main() {
f, _ := os.Open("./main.go")
defer f.Close()
br := bufio.NewReader(f)
totalLine := 0
for {
_, isPrefix, err := br.ReadLine()
if !isPrefix {
totalLine += 1
}
if err == io.EOF {
break
}
}
fmt.Println("total lines is:", totalLine)
}total lines is: 31