- 1. os包
- 1.1 Write()/WriteString()方法
- 语法
- 完整示例
- 1.2 Read()方法
- 语法
- 完整示例
- 2. bufio包
- 2.1 WriteString()/flush()方法
- 语法
- 完整示例
- 2.2 ReadLine()方法
- 语法
- 完整示例
- 3. ioutil 包
- 3.1 WriteFile()
- 语法
- 完整示例
- 3.2 ReadFile()
- 语法
- 完整示例
- 打开文件
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 := "# 人员名单rn- 刘备刘玄德rn- 关羽关云长rn- 张飞张翼德"
path := "nameList.md"
writeFile(info,path)
//readFile(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
}
//_,err = fi.Write([]byte(info))
//if err != nil {
// return
//}
}
- 显示结果
func (f *File) Read(b []byte) (n int, err error)完整示例
- 代码
package main
import (
"fmt"
"os"
)
func main() {
//info := "# 人员名单rn- 刘备刘玄德rn- 关羽关云长rn- 张飞张翼德"
path := "nameList.md"
//writeFile(info,path)
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()方法 语法
- 创建writer实例
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 := "# 人员名单rn- 刘备刘玄德rn- 关羽关云长rn- 张飞张翼德"
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,其缓冲区有默认大小
writer := bufio.NewWriter(fi)
//将信息写入缓存
_,err = writer.WriteString(info)
if err != nil {
return
}
//将缓存数据写入文件
err = writer.Flush()
if err != nil {
return
}
}
- 显示结果
同上例
- 打开文件
func OpenFile(name string, flag int, perm FileMode) (*File, error)
- 创建reader
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() {
//info := "# 人员名单rn- 刘备刘玄德rn- 关羽关云长rn- 张飞张翼德"
path := "nameList.md"
//writeFile(info,path)
readFile(path)
}
func readFile(path string) {
fi, err := os.OpenFile(path,os.O_RDONLY,0664)
if err != nil {
fmt.Printf("Error: %sn", 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 := "# 人员名单rn- 刘备刘玄德rn- 关羽关云长rn- 张飞张翼德"
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() {
//info := "# 人员名单rn- 刘备刘玄德rn- 关羽关云长rn- 张飞张翼德"
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)
}
- 结果
# 人员名单 - 刘备刘玄德 - 关羽关云长 - 张飞张翼德



