package main
import (
"bufio"
"fmt"
"os"
)
func main() {
//创建一个文件并写入内容
filePath := "E:/test.txt"
file, err := os.OpenFile(filePath, os.O_WRONLY|os.O_CREATE, 0666) //0666 在windos下无效
if err != nil {
fmt.Println("open file err:",err)
return
}
//关闭文件
defer file.Close()
//写入的内容
str := "你好,Golang\r\n"
//带缓存写入文件
writer := bufio.NewWriter(file)
for i := 0;i < 5;i++ {
writer.WriteString(str)
}
//内容是写入到缓存中的,需要Flush()
writer.Flush()
}
三、打开已有的文件并覆盖写入内容
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
//创建一个文件并写入内容
filePath := "E:/test.txt"
file, err := os.OpenFile(filePath, os.O_WRONLY|os.O_TRUNC, 0666) //0666 在windos下无效
if err != nil {
fmt.Println("open file err:",err)
return
}
//关闭文件
defer file.Close()
//写入的内容
str := "你好,老王\n"
//带缓存写入文件
writer := bufio.NewWriter(file)
for i := 0;i < 10;i++ {
writer.WriteString(str)
}
//内容是写入到缓存中的,需要Flush()
writer.Flush()
}
三、打开已有的文件并追加写入内容
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
//创建一个文件并写入内容
filePath := "E:/test.txt"
file, err := os.OpenFile(filePath, os.O_WRONLY|os.O_APPEND, 0666) //0666 在windos下无效
if err != nil {
fmt.Println("open file err:",err)
return
}
//关闭文件
defer file.Close()
//写入的内容
str := "你好,小王\n"
//带缓存写入文件
writer := bufio.NewWriter(file)
for i := 0;i < 5;i++ {
writer.WriteString(str)
}
//内容是写入到缓存中的,需要Flush()
writer.Flush()
}
四、打开已有的读取文件并追加写入内容
package main
import (
"bufio"
"fmt"
"io"
"os"
)
func main() {
//创建一个文件并写入内容
filePath := "E:/test.txt"
file, err := os.OpenFile(filePath, os.O_RDWR|os.O_APPEND, 0666) //0666 在windos下无效
if err != nil {
fmt.Println("open file err:",err)
return
}
//关闭文件
defer file.Close()
//读取文件
reader := bufio.NewReader(file)
for {
str, err := reader.ReadString('\n')
if err == io.EOF {
break
}
//显示内容
fmt.Print(str)
}
//写入的内容
str := "你好,小王\n"
//带缓存写入文件
writer := bufio.NewWriter(file)
for i := 0;i < 5;i++ {
writer.WriteString(str)
}
//内容是写入到缓存中的,需要Flush()
writer.Flush()
}
五、读取文件内容并写入到另一个文件
package main
import (
"fmt"
"io/ioutil"
)
func main() {
file1Path := "E:/a1.txt"
file2Path := "E:/test.txt"
//打开并读取文件内容
data, err := ioutil.ReadFile(file1Path)
//判断文件是否读取错误
if err != nil {
fmt.Println("read file err:",err)
return
}
//打开并写入内容
err = ioutil.WriteFile(file2Path, data, 0666)
//判断文件是否写入错误
if err != nil{
fmt.Println("write file err:",err)
}
}