os.ReadFile 指定文件读取文件
package main
import (
"fmt"
"os"
)
func main() {
fileName := "test.txt"
content, err := os.ReadFile(fileName)
if err != nil {
return
}
fmt.Println(string(content))
}
ioutil.ReadFile 读取文件
package main
import (
"fmt"
"io/ioutil"
)
func main() {
fileName := "test.txt"
content, err := ioutil.ReadFile(fileName)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(string(content))
}
os.Open 通过句柄打开文件
package main
import (
"fmt"
"io/ioutil"
"os"
)
func main() {
fileName := "test.txt"
file, err := os.Open(fileName)
if err != nil {
fmt.Println(err)
return
}
defer file.Close()
content, err := ioutil.ReadAll(file)
if err !=nil {
fmt.Println(err)
return
}
fmt.Println(string(content))
}
os.OpenFile 打开文件
package main
import (
"fmt"
"os"
)
func main() {
fileName := "test.txt"
// If the file does not exist, and the O_CREATE flag
// flag:文件的打开方式,如只读、只写、读写等
//文件的读写权限
file, err := os.OpenFile(fileName, os.O_RDONLY, 0)
if err != nil {
fmt.Println(err)
return
}
defer file.Close()
content, err := ioutil.ReadAll(file)
if err !=nil {
fmt.Println(err)
return
}
fmt.Println(string(content))
}
切片读取文件 按照行读取
package main
import (
"bufio"
"fmt"
"io"
"os"
"strings"
)
func main() {
fileName := "test.txt"
file, err := os.Open(fileName)
if err != nil {
fmt.Println(err)
return
}
defer file.Close()
// 解决 content 文件过大导致
// content, err := ioutil.ReadAll(file)
r := bufio.NewReader(file)
for {
lineBytes, err := r.ReadBytes('\n')
line := strings.TrimSpace(string(lineBytes))
if err != nil && err != io.EOF {
return
}
if err == = io.EOF {
break
}
fmt.Println(line)
}
}
