Go语言中文网 为您找到相关结果 259

golang并发读取文件并开启工作池处理数据

func main() { strCh := make(chan string) wg := sync.WaitGroup{} for i := 0; i < 20; i++ { wg.Add(1) go func() { defer wg.Done() for str := range strCh { log.Info.Println(str) } }() } ReadFiles2Chan(filePaths, strCh) close(strCh) wg.Wait() log.Info.Println("正常退出") } // 并发读取文件将文件行放入管道 func ReadFiles2Chan(filePaths []string, strCh chan string) { var w...阅读全文

博文 2019-03-15 14:36:33 不浪人

open-falcon-hbs学习

open-falcon-hbs 标签(空格分隔): go falcon 主要功能 处理agent心跳请求,填充host表 ip白名单下发所有agent 下发执行插件信息 下发监控端口、进程 缓存监控策略 模块结构 内存数据Map结构 HostMap: (hostname, hostId int) HostGroupsMap: (hostId, groupsId []int) GroupPlugins: (groupId, pluginsPath []string) GroupTemplates: (groupId, templatesID []int) TemplateCache: (templateId, Template) type Template struct { Id int `j...阅读全文

博文 2017-02-09 08:29:08 SkyWay

go 读取文件夹所有文件并生成md5 字符串

为文件生成MD5字符串 func CreateMd5(filename string, md5str *string) { f, err := os.Open(filename) if err != nil { fmt.Println("Open", err) return } defer f.Close() md5hash := md5.New() if _, err := io.Copy(md5hash, f); err != nil { fmt.Println("Copy", err) return } md5hash.Sum(nil) *md5str = fmt.Sprintf("%x", md5hash.Sum(nil)) } 读取文件夹下面的所有文件,为其创建md5字符串并存入r...阅读全文

博文 2018-12-02 13:35:15 woahjknes

Golang文件读写

创建文件通过os包的Create、NewFile方法创建func Create(name string)(file *File,err Error)func NewFile(fd uintprt,name string)*File打开文件func Open(name string)(file *File,err Error)func OpenFile(name string,flag int,perm uint32)(file *File,err Error)写文件func (file *File) Write(b []byte)(n int,err Error)func (file *File)WriteAt(b []byte,off int64)(n int,err Error)func...阅读全文

博文 2018-10-28 23:34:39 水无寒

go 文件读取和文件实时监控

package main import ( "bufio" "io" "io/ioutil" "log" "os" "time" ) // 一次性读取 func ReadAll(filePth string) ([]byte, error) { f, err := os.Open(filePth) if err != nil { return nil, err } defer f.Close() /* ReadAll从r读取数据直到EOF或遇到error,返回读取的数据和遇到的错误。 成功的调用返回的err为nil而非EOF。 因为本函数定义为读取r直到EOF,它不会将读取返回的EOF视为应报告的错误。 */ return ioutil.ReadAll(f) } // 分块读取 可在速度和内...阅读全文

博文 2019-06-26 17:32:42 战神悟空

小猿圈分享-golang实现协程安全的几种方式

近些年go语言越来越多的被用在公司的开发中,同时学习go语言的朋友越来越多,小猿圈也为了跟上时代的脚步,给大家整理一些用go语言实现协程安全的几种方式。1.channel - monitor goroutinevar deposits =make(chan int) // send amount to depositvar balances =make(chan int) // receive balancefunc Deposit(amountint) { deposits <- amount }func Balance()int { return <-balances }func teller() { var balance int // balance is confined tote...阅读全文

博文 2019-05-16 13:34:39 小猿圈IT教育

CSV文件读写操作,追加写

```go package main import ( "encoding/csv" "fmt" "io" "log" "os" ) func main() { //准备读取文件 fileName := "D:\\gotest\\src\\source\\test.csv" fs, err := os.Open(fileName) if err != nil { log.Fatalf("can not open the file, err is %+v", err) } defer fs.Close() r := csv.NewReader(fs) //针对大文件,一行一行的读取文件 for { row,...阅读全文

go读取文件中的\r\n 与字符串直接包含\r\n 为什么有区别,如何做到一致

对于包含\r\n的文件处理,为什么与字符串不一样,如何做到实现一样的效果? 如下面的例子。 两次打印 1. 预先将字符串写入文件, 读取文件并打印 2. 直接把字符串赋值,并打印 可以看到两者的区别, 我想实现文件中也能与字符串一样的效果,如何做呢? btw,我这里不用考虑windows, 现在只是Linux使用 ``` package main import ( "fmt" "io/ioutil" ) func main() { //读取文件内容,其内容为 abc\r\n123\r\n result, _ := ioutil.ReadFile("test.txt") //打印文件内容 fmt.Println(string(result)) //直接赋相同的值给变量 mystr := "ab...阅读全文

博文 2019-01-11 12:46:55 xf645

go实现文件的创建、删除和读取

文件目录的创建和删除 package main import( "fmt" "os" ) func main(){ //创建目录和权限 os.Mkdir("./benben",0777) //创建多级目录和设置权限 os.MkdirAll("./benben/test",0777) //删除目录 err:=os.Remove("./benben") if err!=nil{ fmt.Println(err) } //删除多级目录 os.RemoveAll("./benben") } 文件的创建 package main import ( "os" "fmt" ) func main(){ //文件的创建,Create会根据传入的文件名创建文件,默认权限是0666 file,err:=os.C...阅读全文

博文 2019-02-04 12:34:42 w85278161

golang中compress/bzip2

一、bzip2的简介 bzip2包实现bzip2的解压缩,bzip2是对单个文件进行压缩,可以先进行tar归档,然后进行压缩。 二、bzip2的使用 go标准库中提供了一个对bzip2压缩包进行读取的操作,但是并没有提供进行bzip2压缩操作。 package main import ( "compress/bzip2" "os" "log" "fmt" ) func main() { fz, err := os.Open("1.go.bz2") if err != nil { log.Fatal(err) } w := bzip2.NewReader(fz) buf := make([]byte, 1024 * 100) for { n, err := w.Read(buf) if n =...阅读全文

博文 2018-12-06 16:34:47 laijh

Golang文件读取

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/naiwenw/article/details/79281208 参考 Go实战–golang中读写文件的几种方式 读文件 读取的文件放在file/test:也就是file包下的test这个文件,里面写多一点文件 读文件方式一:利用ioutil.ReadFile直接从文件读取到[]byte中 func Read0() (string){ f, err := ioutil.ReadFile("file/test") if err != nil { fmt.Println("read fail", err) } return string(f) } 读文件方式二:先从文件读取到file中,在从fil...阅读全文

博文 2018-12-17 18:31:33 naiwenw

golang中crypto/elliptic包

elliptic包实现了几条覆盖素数有限域的标准椭圆曲线。 type Curve type Curve interface { // Params返回椭圆曲线的参数 Params() *CurveParams // IsOnCurve判断一个点是否在椭圆曲线上 IsOnCurve(x, y *big.Int) bool // 返回点(x1,y1)和点(x2,y2)相加的结果 Add(x1, y1, x2, y2 *big.Int) (x, y *big.Int) // 返回2*(x,y),即(x,y)+(x,y) Double(x1, y1 *big.Int) (x, y *big.Int) // k是一个大端在前格式的数字,返回k*(Bx,By) ScalarMult(x1, y1 *bi...阅读全文

博文 2018-12-09 14:34:43 laijh

golang实现人民币小写转大写

使用golang的正则表达式实现人民币小写转大写,代码如下: package main import ( "regexp" "strconv" "log" "fmt" ) func ConvertNumToCny(num float64) string { strnum := strconv.FormatFloat(num*100, 'f', 0, 64) sliceUnit := []string{"仟", "佰", "拾", "亿", "仟", "佰", "拾", "万", "仟", "佰", "拾", "元", "角", "分"} // log.Println(sliceUnit[:len(sliceUnit)-2]) s := sliceUnit[len(sliceUnit)-len...阅读全文

博文 2018-12-29 10:35:57 渣渣曦

Go实战--golang中读写文件的几种方式

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wangshubo1989/article/details/74777112 生命不止,继续 go go go !!! 读写文件应该是在开发过程中经常遇到的,今天要跟大家一起分享的就是在golang的世界中,如何读写文件。 使用io/ioutil进行读写文件 先回忆下之前的ioutil包介绍: Go语言学习之ioutil包(The way to go) 其中提到了两个方法: func ReadFile func ReadFile(filename string) ([]byte, error) ReadFile reads the file named by filename and retur...阅读全文

博文 2018-12-15 13:31:32 wangshubo1989

关于文本读取的问题

func readMaze(fileName string) [][]int{ file, err := os.Open(fileName) if err != nil{ panic(err) } var row, col int fmt.Fscanf(file, "%d %d", &row, &col) maze := make([][]int, row) for i := range maze { maze[i] = make([]int, col) for j := range maze[i] { fmt.Fscanf(file, "%d", &maze[i][j]) } } return maze } func main() { maze := readMaze("src/maze/...阅读全文

博文 2018-09-17 17:34:59 Mosan

业务总结

业务笔记 在数据库中存表情 https://www.zhihu.com/question/21873949 什么时候选择前后分离,什么时候选择数据绑定? 通常我们经常说前后分离比数据硬绑定来得优雅,来的方便,however,不同的方式有不同的业务需求。 举个例子:对于app的个人用户界面,如果采用前后分离调接口的方式,那么会出现界面加载完毕,而数据后加载,也就是说:我本身已经登录了这个app,在下拉后有短时间的==请登录==三个字停留,这样用户体验是相当不好的,至少用户对你这个系统的稳定性、公司的稳定性和安全性产生了怀疑,让用户抱着怀疑的态度用你的产品,如果你的产品不是特别刚需和具有独特性,可能你就宣布GG了。 举例二:比如你的文章列表和文章界面使用了前后分离,即使是数据后显示出来,这样也是...阅读全文

博文 2017-09-06 15:34:47 yulibaozicom

Golang读取MySQL数据库,数据列动态变化的处理

读取数据库的SELECT语句是动态变化的,因此查询出来的列也是变化的。按照网上查找的资料,使用下面的方法进行处理: cols, err := rows.Columns() // Remember to check err afterwards vals := make([]interface{}, len(cols)) for i, _ := range cols { vals[i] = new(sql.RawBytes) } for rows.Next() { err = rows.Scan(vals...) // Now you can check each element of vals for nil-ness,...阅读全文

Go基础系列:读取标准输入

fmt包中提供了3类读取输入的函数: Scan家族:从标准输入os.Stdin中读取数据,包括Scan()、Scanf()、Scanln() SScan家族:从字符串中读取数据,包括Sscan()、Sscanf()、Sscanln() Fscan家族:从io.Reader中读取数据,包括Fscan()、Fscanf()、Fscanln() 其中: Scanln、Sscanln、Fscanln在遇到换行符的时候停止 Scan、Sscan、Fscan将换行符当作空格处理 Scanf、Sscanf、Fscanf根据给定的format格式读取,就像Printf一样 这3家族的函数都返回读取的记录数量,并会设置报错信息,例如读取的记录数量不足、超出或者类型转换失败等。 以下是它们的定义方式: $ go...阅读全文

博文 2018-11-23 09:11:42 f-ck-need-u

golang读取文本文件(转)

一般文件比较小的话可以将文件全部读入内存中,然后转换成string再按行分割一下: func GetFileContentAsStringLines(filePath string) ([]string, error) { logger.Infof("get file content as lines: %v", filePath) result := []string{} b, err := ioutil.ReadFile(filePath) if err != nil { logger.Errorf("read file: %v error: %v", filePath, err) return result, err } s := string(b) for _, lineStr :=...阅读全文

博文 2019-06-16 17:32:40 杜子龙

golang修仙记之gorm(一)

学习了如何连接数据库、简单的错误处理、关闭数据库、创建表、创建表中的一条记录、读取表的记录、更新表的记录、删除标的记录 package main import ( "github.com/jinzhu/gorm" _ "github.com/jinzhu/gorm/dialects/mysql" "time" ) type User struct { gorm.Model Name string Age int Birthday time.Time } func main() { // connect the database db, err := gorm.Open("mysql", "user:password@tcp(ip:port)/database?charset=utf8&par...阅读全文

博文 2019-03-09 12:35:42 PowerMichael

土拨鼠goroutine读取数据和chan的关系.

1 goroutine之间通信go推荐使用chan的方式,chan本身是安全的有类型的 2 chan的数据结构在src/runtime/hchan中 type hchan struct { //当前队列中剩余元素的个数 qcount uint // total data in the queue //环形队列的长度可以存放数据的长度 dataqsiz uint // size of the circular queue //环形队列的指针 buf unsafe.Pointer // points to an array of dataqsiz elements //每个元素的大小 elemsize uint16 //表示的关闭状态 closed uint32 //元素的类型 elemtype...阅读全文

博文 2019-08-28 14:19:29 blackdinosuar

golang 读取文件的四种方式

参考 Go实战--golang中读写文件的几种方式 读文件 读取的文件放在file/test:也就是file包下的test这个文件,里面写多一点文件 读文件方式一:利用ioutil.ReadFile直接从文件读取到[]byte中 func Read0() (string){ f, err := ioutil.ReadFile("file/test") if err != nil { fmt.Println("read fail", err) } return string(f) } 读文件方式二:先从文件读取到file中,在从file读取到buf, buf在追加到最终的[]byte func Read1() (string){ //获得一个file f, err := os.Open("fi...阅读全文

博文 2019-07-05 11:32:45 w85278161

golang fmt(格式换 I O接口)

基本模式 fmt 方法可以大致分为 print, scan两类, 根据基础方法可以构建特定方法。 Print 将参数写入字符串或io.writer scan 从字符串或 io.Reader 读取指定数据, 并输出 Print Print 方法的几种模式 基础模式: [name] Print 返回默认格式化的字符串 写入模式: F[name] 返回写入字节 例如: Fprint 字符模式: S[name] 返回字符 例如: Sprint 模板模式: [name]f 根据模板格式化 例如: Printf 换行模式: [name]ln 输出后带换行 例如: Println 模式可组合, 例如 Fprintf, Sprintf Print 默认格式化,返回字符串 func Print(a ...in...阅读全文

chan

1.主协程只负责调用子协程,但是不会被子协程阻塞2.在主协程中,无缓冲的chan需要输入输出成对出现,否则会死锁3.select 特殊处理可以阻止死锁的发生,或者使用缓冲chan4.主协程读取空的chan(若果永远没有输入-死锁,如果子协程有输入-正常)package mainimport ( "fmt" "time")var send = make(chan string,1)func goroutine2(){ fmt.Println(111) time.Sleep(5000*time.Millisecond) send <- "sss"}func main() { fmt.Println("Hello Golang") go goroutine2() fmt.Println(<- se...阅读全文

博文 2019-09-30 15:32:49 aside section ._1OhGeD

Golang 复制文件的三种做法

主要介绍三种复制文件的方法: 使用io.Copy()方法 一次性读取输入文件,然后再一次性写入目标文件 使用buffer一块块地复制文件 方法一 : 使用io.Copy func copy(src, dst string) (int64, error) { sourceFileStat, err := os.Stat(src) if err != nil { return 0, err } if !sourceFileStat.Mode().IsRegular() { return 0, fmt.Errorf("%s is not a regular file", src) } source, err := os.Open(src) if err != nil { return 0, err...阅读全文

博文 2019-03-10 22:34:40 Wenchao

golang os.File 读取内容在Mac和Linux表现行为不同

package mainimport ("io/ioutil""log""os""time")func main() {f, err := os.OpenFile("/tmp/tmp_file", os.O_RDWR|os.O_CREATE|os.O_EXCL, 0600)if err != nil {log.Fatal(err)}defer f.Close()defer os.Remove(f.Name())b, err := ioutil.ReadAll(f)if err != nil {log.Fatal(err)}log.Printf("content: %s\n", string(b))time.Sleep(1 * time.Minute)f.Seek(0, 0)b, err = ...阅读全文

博文 2019-08-25 19:02:40 hell0_98a8

分析该缓冲通道wrote和read的数字的顺序

分析该缓冲通道wrote和read的数字的顺序 package main import ( "fmt" "time" ) func write(ch chan int) { for i := 0; i < 5; i++ { ch <- i fmt.Println("successfully wrote", i, "to ch") } close(ch) } func main() { ch := make(chan int, 2) go write(ch) time.Sleep(2 * time.Second) for v := range ch { fmt.Println("read value", v, "from ch") time.Sleep(2 * time.Second) } }...阅读全文

博文 2019-01-02 09:34:45 SmallForest

Golang学习笔记-并发

goroutine goroutine是Go内置的轻量级线程,它的调度由Go运行时管理,调用函数时前面加上关键字go就可以让函数在goroutine中执行。 func print123(){ for i:=0;i<3;i++{ time.Sleep(time.Millisecond*100) fmt.Println(i+1) } } func main(){ go print123() print123()//1 1 2 2 3 3 time.Sleep(time.Second*5) } 通道 通道可通过一个指定类型的值来传递数据,<-chan表示只读通道,只能从通道中接受数据,chan<-表示只写通道,只能向通道发送数据,如果未指定方向,则为双向通道。 默认情况下,通道是不带缓冲区的,向无...阅读全文

博文 2019-09-27 23:32:43 aside section ._1OhGeD

Go实战--golang中读写文件的几种方式

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wangshubo1989/article/details/74777112 生命不止,继续 go go go !!! 读写文件应该是在开发过程中经常遇到的,今天要跟大家一起分享的就是在golang的世界中,如何读写文件。 使用io/ioutil进行读写文件 先回忆下之前的ioutil包介绍: Go语言学习之ioutil包(The way to go) 其中提到了两个方法: func ReadFile func ReadFile(filename string) ([]byte, error) ReadFile reads the file named by filename and retur...阅读全文

博文 2019-02-01 10:31:34 wangshubo1989

关于init函数的执行

为什么在init函数初始化server时是空的,然而在调用的时候却是有数据的,其中conf.GetWsServer()是读取配置文件中的数据,对server初始化的方法。求大神帮解析一下这个过程!!!![server1.png](https://static.studygolang.com/190111/aa13ad29aa68f314f8cbf3501d8a33e7.png)![server2.png](https://static.studygolang.com/190111/53fb60ef18984849fc3f6a26354f989f.png...阅读全文

golang 文件操作

golang 文件操作 获取文件大小 "path/filepath" import ( "path/filepath" ) func GetFileSize(filename string) int64 { var size int 64 filepath.Walk(filename, func(path string, f os.FileInfo, err error) error { if err != nil{ return err }else{ result = f.size(); return nil } }) return result; } 读取文件 import ( "fmt" "os" ) func ReadFile(){ filePath := './data.json'...阅读全文

博文 2019-08-23 10:33:03 直立猿

golang 读取shp文件

package mainimport ("fmt""github.com/jonas-p/go-shp""log""reflect")func main() {// open a shapefile for reading reader, err := shp.Open("E:/example.shp")if err != nil {log.Fatal(err)}defer reader.Close()// fields from the attribute table (DBF) fields := reader.Fields()//fmt.Println(reader.AttributeCount())//for k, f := range fields {// fmt.Println(...阅读全文

博文 2019-09-29 21:32:47 aside section ._1OhGeD

golang-101-hacks(25)——Buffered read

bufio包提供缓冲读取的函数。如下面例子所示 (1) 首先创建test.txt (1) Create a test.txt file first: # cat test.txt abcd efg hijk lmn You can see test.txt contains 4 lines. (2) See the following program: package main import ( "bufio" "fmt" "io" "log" "os" ) func main() { f, err := os.Open("test.txt") if err != nil { log.Fatal(err) } r := bufio.NewReader(f) for { if s, err :...阅读全文

博文 2019-06-30 00:02:40 羊羽shine

golang实现文件copy

package main import ( "fmt" "io" "os" ) func main() { //打开源文件 sFile,err := os.Open("C:/GoProject/file/helloworld.txt") defer sFile.Close() if err !=nil{ fmt.Println("os.Open err = ",err) return } //创建目标文件 tFile,err := os.Create("C:/GoProject/file/helloworld_copy.txt") defer tFile.Close() if err !=nil{ fmt.Println("os.Create err= ",err) } //循环读取文件,写...阅读全文

博文 2019-07-22 16:32:42 七八个星天

golang第三天

测试代码 hello.go package main import ( "errors" "math" "fmt" "time" "io/ioutil" ) /** * errors.New 可返回一个错误信息: */ func MySqrt(f float64) (float64, error) { if f < 0 { return 0, errors.New("f can not be negative number.") } return math.Sqrt(f), nil } type DivideError struct { dividee int divider int } /** 实现error接口中的Error()方法 */ func (dError *DivideErro...阅读全文

博文 2019-03-01 07:34:41 陌生人的头像

Golang文件操作学习 - 简单的打开/关闭文件

Go文件操作学习笔记... 什么是文件? 如何打开文件?如何关闭文件? 什么是文件呢 ? 文件简单来说就是数据源,最主要的作用就是用来保存数据的,它可以保存一篇文章,一张图片,一段音频,一段视频或者说一段源代码等等 (例如:excel, txt, word, MP3...等等都是文件) 打开/关闭一个文件 包/文档查看路径:https://studygolang.com/pkgdoc os --> type File 打开文件 --> func Open(name string) (file *File, err error) Open打开一个文件用于读取。如果操作成功,返回的文件对象的方法可用于读取数据;对应的文件描述符具有O_RDONLY模式。如果出错,错误底层类型是*PathError...阅读全文

博文 2019-09-29 14:32:54 aside section ._1OhGeD

golang os.File 在darwin和linux下的不同

做gopl ex4.11 练习题,发现创建临时文件后,用editor修改内容,读取的还是之前的内容。看了下ioutil.TempFile实现,觉得没有坑。于是写了下面代码验证,手动修改tmp文件。发现依旧没有读取到修改后的内容。找到一台linux机器,跑了下,发现能够读取到修改后的内容。 package main import ( "io/ioutil" "log" "os" "time" ) func main() { f, err := os.OpenFile("/tmp/tmp_file", os.O_RDWR|os.O_CREATE|os.O_EXCL, 0600) if err != nil { log.Fatal(err) } defer f.Close() defer os.R...阅读全文

博文 2019-08-25 19:02:40 hell0_98a8

golang ioutil io工具

读取 ReadAll 读取全部数据 func ReadAll(r io.Reader) ([]byte, error) file, _ := os.Open("./cache.js") bt, _ := ioutil.ReadAll(file) fmt.Println(string(bt) ReadFile 读取文件 func ReadFile(filename string) ([]byte, error) bt, _ := ioutil.ReadFile("./cache.js") fmt.Println(string(bt)) ReadDir 获取目录信息 func ReadDir(dirname string) ([]os.FileInfo, error) // 返回目录信息列表 f...阅读全文

博文 2019-08-23 10:33:13 直立猿

Golang-04 reflect 学习笔记

图片发自简书App 0x01 reflect.TypeOf TypeOf, 看名知义: 读取对象的固有类型信息 包名 类型名 属性信息 属性名称 Tag 方法信息 方法名称 type Man struct { Name string `hello:"world"` } func (m Man) String() string { return fmt.Sprintf("Man.Stringer() is %s", m.Name) } func (m Man) GoString() string { return fmt.Sprintf("Man.GoStringer() is %s", m.Name) } func main() { man := Man{Name: "Gorey"} to ...阅读全文

博文 2019-08-28 23:33:01 国服最坑开发