Go语言文件操作应用
文件操作应用
一、从一个文件拷贝到另一个文件。
package main import ( "fmt" "io" "os" ) func CopyFile(dstName, srcName string) (writeen int64, err error) { src, err := os.Open(dstName) if err != nil { fmt.Println(err) return } defer src.Close() dst, err := os.OpenFile(srcName, os.O_CREATE|os.O_WRONLY, 0644) if err != nil { fmt.Println(err) return } defer dst.Close() return io.Copy(dst, src) } func main() { CopyFile("./oldboy/golang.go", "./oldboy/golang_copy.go") fmt.Println("copy done.") }
二、写入内容到Excel。
使用 encoding/csv 包实现写入内容到Excel。
csv读写逗号分隔值(csv)的文件。
一个csv分拣包含零到多条记录,每条记录一到多个字段。每个记录用换行符分隔。最后一条记录后面可以有换行符,也可以没有。
写入内容到Excel常用函数和方法:
func NewWriter(w io.Writer) *Writer
NewWriter返回一个写入w的*Writer。
func (w *Writer) Write(record []string) (err error)
向w中写入一条记录,会自行添加必需的引号。记录是字符串切片,每个字符串代表一个字段。
func (w *Writer) Flush()
将缓存中的数据写入底层的io.Writer。要检查Flush时是否发生错误的话,应调用Error方法。
func (w *Writer) WriteAll(records [][]string) (err error)
WriteAll方法使用Write方法向w写入多条记录,并在最后调用Flush方法清空缓存。
代码实现:
package main import ( "encoding/csv" "math/rand" "os" "strconv" ) func main() { file, err := os.Create("./oldboy.xls") if err != nil { panic(err) } defer func(file *os.File) { file.Close() }(file) file.WriteString("xEFxBBxBF") // 写入UTF-8 BOM w := csv.NewWriter(file) w.Write([]string{"编号", "姓名", "年龄"}) for i := 1; i < 11; i++ { num := strconv.FormatInt(int64(i), 10) age := strconv.FormatInt(int64(rand.Intn(100)), 10) w.Write([]string{num, "name" + num, age}) } w.Flush() records := [][]string{} for i := 11; i < 21; i++ { num := strconv.FormatInt(int64(i), 10) age := strconv.FormatInt(int64(rand.Intn(100)), 10) str := []string{num, "name" + num, age} records = append(records, str) } w.WriteAll(records) }
特别声明:以上文章内容仅代表作者本人观点,不代表变化吧观点或立场。如有关于作品内容、版权或其它问题请于作品发表后的30日内与变化吧联系。
- 赞助本站
- 微信扫一扫
-
- 加入Q群
- QQ扫一扫
-
评论