习惯了Python里面对文件的操作简单随意,刚上手Go语言这样类似C语言的文件操作方法,一时还不习惯使用buffer来读取和吸入文件。在python中文件对象可以使用readLines和writeLines来遍历文件的行,十分的方便。
如果在Go语言里面也能有这样的方法就好了,找了半天API,还是没有收获。求人不如求己,自己写一个。
代码如下:
package main
import (
"io"
"os"
"bufio"
"bytes"
"fmt"
"strings"
)
func readLines(path string)(lines [] string,err error){
var (
file *os.File
part [] byte
prefix bool
)
if file, err = os.Open(path); err != nil {
return
}
reader := bufio.NewReader(file)
buffer := bytes.NewBuffer(make([]byte,1024))
for {
if part, prefix, err = reader.ReadLine();err != nil {
break
}
buffer.Write(part)
if !prefix {
lines = append(lines,buffer.String())
buffer.Reset()
}
}
if err == io.EOF {
err = nil
}
return
}
func writeLines(lines [] string,path string)(err error){
var file *os.File
if file,err = os.Create(path); err != nil{
return
}
defer file.Close()
for _,elem := range lines {
_,err := file.WriteString(strings.TrimSpace(elem)+"\n")
if err != nil {
fmt.Println(err)
break
}
}
return
}
func main(){
lines, err := readLines("5906376")
if err != nil{
fmt.Println("Error:%s\n",err)
return
}
for _,line := range lines {
fmt.Println(line)
}
err= writeLines(lines,"a.txt")
fmt.Println(err)
}
分享到:
相关推荐
主要介绍了详解Golang利用反射reflect动态调用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
主要介绍了golang实现跨域访问的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
本文主要给大家介绍了关于Golang中switch和select用法的相关内容,分享出来供大家参考学习,下面来一起看看详细的介绍: 一、switch语句 switch语句提供了一个多分支条件执行的方法。每一个case可以携带一个表达式...
golang中文手册.chm,学习golang语言的字典,一典在手,天下我有
accounting - golang中金额和货币格式
Golang算法和数据结构
golang 函数以及函数和方法的区别
kingpin - 一个Go(golang)命令行和flag解析器支持子命令
主要给大家介绍了Golang TCP粘包拆包问题的解决方法,文中通过示例代码介绍的非常详细,对大家学习或者使用Golang具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
golang安装教程和安装包.zip
golang中英双版手册,中文版翻译的的不全,有的有js脚本报错,有的页面打不开
zk-sniffer:使用golang嗅探和解析ZooKeeper数据包
在docker上测试golang 使用golang和mysql创建一个最小的开发环境
今天小编就为大家分享一篇golang http连接复用方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
astitodo: 一个Golang库和CLI来解析GO代码中的TODO
golang中文手册.rar
golang解析数字证书 PKCS#1 PKCS#8格式的私钥
golang开发modbus rtu实例,使用golang与Modbus Slave软件进行模拟测试。
在Centos7安装golang教程
主要介绍了golang 连接mongoDB的方法示例,详细的介绍了golang的基础知识和连接mongoDB的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下