Write()、WriteString(),bufio包:WriteString()、flush(), ioutil 包:WriteFile()、ReadFile()
@
1. os包
1.1 Write()/WriteString()方法
语法
| func OpenFile(name string, flag int, perm FileMode) (*File, error) |
| func (f *File) WriteString(s string) (n int, err error) |
或
| func (f *File) Write(b []byte) (n int, err error) |
完整示例
| package main |
| |
| import ( |
| "fmt" |
| "os" |
| ) |
| |
| func main() { |
| info := "# 人员名单\r\n- 刘备刘玄德\r\n- 关羽关云长\r\n- 张飞张翼德" |
| path := "nameList.md" |
| writeFile(info,path) |
| |
| } |
| |
| func writeFile(info string,path string) { |
| |
| fi, err := os.OpenFile(path, os.O_CREATE|os.O_WRONLY|os.O_TRUNC, 0664) |
| if err != nil { |
| fmt.Println(err) |
| return |
| } |
| defer fi.Close() |
| |
| _,err = fi.WriteString(info) |
| if err != nil { |
| return |
| } |
| |
| |
| |
| |
| |
| } |
- 显示结果

1.2 Read()方法
语法
| func (f *File) Read(b []byte) (n int, err error) |
完整示例
| package main |
| |
| import ( |
| "fmt" |
| "os" |
| ) |
| |
| func main() { |
| |
| path := "nameList.md" |
| |
| readFile(path) |
| } |
| |
| func readFile(path string) { |
| |
| fi, err := os.Open(path) |
| if err != nil { |
| fmt.Println( err) |
| return |
| } |
| defer fi.Close() |
| |
| var tmp = make([]byte, 100) |
| n,err := fi.Read(tmp) |
| if err != nil { |
| return |
| } |
| fmt.Printf("%s",tmp[:n]) |
| |
| } |
| # 人员名单 |
| - 刘备刘玄德 |
| - 关羽关云长 |
| - 张飞张翼德 |
2. bufio包
2.1 WriteString()/flush()方法
语法
| func NewWriter(w io.Writer) *Writer |
| func (b *Writer) WriteString(s string) (int, error) |
| func (b *Writer) Flush() error |
完整示例
| import ( |
| "bufio" |
| "fmt" |
| "io" |
| "os" |
| ) |
| |
| func main() { |
| info := "# 人员名单\r\n- 刘备刘玄德\r\n- 关羽关云长\r\n- 张飞张翼德" |
| path := "nameList.md" |
| writeFile(info,path) |
| } |
| |
| func writeFile(path string,info string) { |
| fi, err := os.OpenFile(path, os.O_CREATE|os.O_WRONLY|os.O_TRUNC, 0664) |
| if err != nil { |
| fmt.Println( err) |
| return |
| } |
| defer fi.Close() |
| |
| writer := bufio.NewWriter(fi) |
| |
| _,err = writer.WriteString(info) |
| if err != nil { |
| return |
| } |
| |
| err = writer.Flush() |
| if err != nil { |
| return |
| } |
| } |
2.2 ReadLine()方法
语法
| func OpenFile(name string, flag int, perm FileMode) (*File, error) |
| func NewReader(rd io.Reader) *Reader |
| func (b *Reader) ReadLine() (line []byte, isPrefix bool, err error) |
完整示例
| package main |
| |
| import ( |
| "bufio" |
| "fmt" |
| "io" |
| "os" |
| ) |
| |
| func main() { |
| |
| path := "nameList.md" |
| |
| readFile(path) |
| } |
| |
| func readFile(path string) { |
| fi, err := os.OpenFile(path,os.O_RDONLY,0664) |
| if err != nil { |
| fmt.Printf("Error: %s\n", err) |
| return |
| } |
| defer fi.Close() |
| reader := bufio.NewReader(fi) |
| for { |
| lineString, _,err := reader.ReadLine() |
| if err == io.EOF { |
| break |
| } |
| fmt.Println(string(lineString)) |
| } |
| } |
| # 人员名单 |
| - 刘备刘玄德 |
| - 关羽关云长 |
| - 张飞张翼德 |
3. ioutil 包
3.1 WriteFile()
语法
| func WriteFile(filename string, data []byte, perm fs.FileMode) error |
完整示例
| package main |
| |
| import ( |
| "fmt" |
| "io/ioutil" |
| ) |
| |
| func main() { |
| info := "# 人员名单\r\n- 刘备刘玄德\r\n- 关羽关云长\r\n- 张飞张翼德" |
| path := "nameList.md" |
| writeFile(info,path) |
| } |
| |
| func writeFile(info string,path string,) { |
| err := ioutil.WriteFile(path,[]byte(info), 0664) |
| if err != nil { |
| fmt.Println(err) |
| return |
| } |
| } |
3.2 ReadFile()
语法
| func ReadFile(filename string) ([]byte, error) |
完整示例
| package main |
| |
| import ( |
| "fmt" |
| "io/ioutil" |
| ) |
| |
| func main() { |
| |
| path := "nameList.md" |
| readFile(path) |
| } |
| |
| func readFile(path string,) { |
| info,err := ioutil.ReadFile(path) |
| if err != nil { |
| fmt.Println(err) |
| return |
| } |
| fmt.Printf("%s",info) |
| } |
| # 人员名单 |
| - 刘备刘玄德 |
| - 关羽关云长 |
| - 张飞张翼德 |

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)