读文件
package main
import (
"bufio"
"fmt"
"io"
"io/ioutil"
"os"
)
func customRead() {
fileContent, err := os.Open("./shiwo.txt")
if err != nil {
fmt.Println("open file error", err)
}
defer fileContent.Close()
var tmp [128]byte
n, err := fileContent.Read(tmp[:])
fmt.Println(string(tmp[:n]))
}
func BufioRead() {
fileContent, err := os.Open("./shiwo.txt")
if err != nil {
fmt.Println("open file error", err)
}
defer fileContent.Close()
render := bufio.NewReader(fileContent)
for {
//问题:当读到最后时如果最后不存在换行符会导致最后一行无法读取
line, err := render.ReadString('\n')
if err == io.EOF {
return
}
if err != nil {
fmt.Println("render error ", err)
return
}
fmt.Println(line)
}
}
func IoutilRead() {
ret, err := ioutil.ReadFile("./shiwo.txt")
if err != nil {
fmt.Println("read file error", err)
}
fmt.Println(string(ret))
}
func main() {
customRead()
}
写文件
package main
import (
"fmt"
"io/ioutil"
"os"
)
func IoutilWrite() {
err := ioutil.WriteFile("./yy.txt", []byte("niwo"), 0664)
if err != nil {
fmt.Println("writer file failed", err)
}
}
func main() {
//O_RDONLY int = syscall.O_RDONLY // open the file read-only.
//O_WRONLY int = syscall.O_WRONLY // open the file write-only.
//O_RDWR int = syscall.O_RDWR // open the file read-write.
//// The remaining values may be or'ed in to control behavior.
//O_APPEND int = syscall.O_APPEND // append data to the file when writing.
//O_CREATE int = syscall.O_CREAT // create a new file if none exists.
//O_EXCL int = syscall.O_EXCL // used with O_CREATE, file must not exist.
//O_SYNC int = syscall.O_SYNC // open for synchronous I/O.
//O_TRUNC int = syscall.O_TRUNC // truncate regular writable file when opened.
//参数说明,OpenFile(文件名,操作模式,文件权限),文件权限只在linux下生效
file, err := os.OpenFile("./zz.txt", os.O_CREATE|os.O_APPEND, 0644)
if err != nil {
fmt.Println("open file failed", err)
}
file.WriteString("hahaha")
file.Close()
}