社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
os包下面有OpenFile函数:
案例1:创建一个新文件,写入5句 :hello,Go语言
package main
import (
"fmt"
"os"
"bufio"
)
func main() {
//创建一个新文件,写入内容 5句 hello,Go语言
filePath := "c:/amyfile/abc.txt"
file, err := os.OpenFile(filePath, os.O_WRONLY | os.O_CREATE, 0666)
if err != nil{
fmt.Println("open file err",err)
}
//及时关闭file句柄
defer file.Close()
//写入文件时,使用带缓存的 *Writer
write := bufio.NewWriter(file)
for i := 0; i < 5; i++ {
write.WriteString("hello,Go语言 n")
}
//Flush将缓存的文件真正写入到文件中
write.Flush()
}
执行之后,可以看出文件已被写入:
案例2:打开一个存在的文件,在原来的内容追加内容:ABC!!
package main
import (
"fmt"
"os"
"bufio"
)
func main() {
//创建一个新文件,写入内容 5句 hello,Go语言
filePath := "c:/amyfile/abc.txt"
file, err := os.OpenFile(filePath, os.O_WRONLY | os.O_APPEND, 0666)
if err != nil{
fmt.Println("open file err",err)
}
//及时关闭file句柄
defer file.Close()
//写入文件时,使用带缓存的 *Writer
write := bufio.NewWriter(file)
for i := 0; i < 5; i++ {
write.WriteString("ABC! rn")
}
//Flush将缓存的文件真正写入到文件中
write.Flush()
}
执行,发现内容追加成功:
案例3:打开一个存在的文件,将原来的内容读出来,显示在终端,并且追加5句:hello,北京。
package main
import (
"fmt"
"os"
"bufio"
"io"
)
func main() {
//创建一个新文件,写入内容 5句 hello,Go语言
filePath := "c:/amyfile/abc.txt"
file, err := os.OpenFile(filePath, os.O_RDWR | os.O_APPEND, 0666)
if err != nil{
fmt.Println("open file err",err)
}
//及时关闭file句柄
defer file.Close()
//读原来文件的内容,并且显示在终端
reader := bufio.NewReader(file)
for {
str, err := reader.ReadString('n')
if err == io.EOF {
break
}
fmt.Print(str)
}
//写入文件时,使用带缓存的 *Writer
write := bufio.NewWriter(file)
for i := 0; i < 5; i++ {
write.WriteString("hello,北京。 rn")
}
//Flush将缓存的文件真正写入到文件中
write.Flush()
}
执行,原来的文件在控制台读取成功,并且在文件中追加成功:
案例4:编写一个程序,将一个文件的内容复制到另外一个文件(注:这两个文件都已存在)
package main
import (
"fmt"
"io/ioutil"
)
func main() {
//创建一个新文件,写入内容 5句 hello,Go语言
file1Path := "c:/amyfile/abc.txt"
file2Path := "c:/amyfile/defer.txt"
data, err := ioutil.ReadFile(file1Path)
if err != nil{
fmt.Printf("open file err=%vn",err)
return
}
err = ioutil.WriteFile(file2Path, data,0666)
if err != nil{
fmt.Printf("open file err=%vn",err)
}
}
执行,发现内容复制成功:
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!