当前位置: 首页 > news >正文

在线生成手机网站原版百度

在线生成手机网站,原版百度,软件开发商有哪些,免费做宣传的网站是一. 整个文件读入内存 直接将数据直接读取入内存,是效率最高的一种方式,但此种方式,仅适用于小文件,对于大文件,则不适合,因为比较浪费内存 1.直接指定文化名读取 在 Go 1.16 开始,ioutil.Rea…

一. 整个文件读入内存

直接将数据直接读取入内存,是效率最高的一种方式,但此种方式,仅适用于小文件,对于大文件,则不适合,因为比较浪费内存

1.直接指定文化名读取

在 Go 1.16 开始,ioutil.ReadFile 就等价于 os.ReadFile,二者是完全一致的

1.1使用os.ReadFile函数读取文件

package mainimport ("fmt""os"
)func main() {content, err := os.ReadFile("a.txt")if err != nil {panic(err)}fmt.Println(string(content))
}

1.2使用ioutil.ReadFile函数读取文件

package mainimport ("io/ioutil""fmt"
)func main() {content, err := ioutil.ReadFile("a.txt")if err != nil {panic(err)}fmt.Println(string(content))
}

2.先创建句柄再读取

2.1使用os.OpenFile函数只读形式获取句柄

package mainimport (
"os"
"io/ioutil"
"fmt"
)func main() {file, err := os.Open("a.txt")if err != nil {panic(err)}defer file.Close()content, err := ioutil.ReadAll(file)fmt.Println(string(content))
}

二.每次只读取一行

一次性读取所有的数据,太耗费内存,因此可以指定每次只读取一行数据,方法有三种:

(1)bufio.读行()

(2)bufio.读取字节("\n")

(3)bufio.ReadString(’\n’)

在 bufio 的源码注释中,曾说道 bufio.ReadLine() 是低级库,不太适合普通用户使用,更推荐用户使用 bufio.ReadBytes和bufio.ReadString 去读取单行数据

因此,这里不再介绍 bufio.读行()

1.使用bufio.Reader结构体的ReadBytes方法读取字节数

ReadBytes读取直到第一次遇到delim字节,返回一个包含已读取的数据和delim字节的切片。如果ReadBytes方法在读取到delim之前遇到了错误,它会返回在错误之前读取的数据以及该错误(一般是io.EOF)。当且仅当ReadBytes方法返回的切片不以delim结尾时,会返回一个非nil的错误

package mainimport ("bufio""fmt""io""os""strings"
)func main() {// 创建句柄fi, err := os.Open("christmas_apple.py")if err != nil {panic(err)}//func NewReader(rd io.Reader) *Reader {},返回的是bufio.Reader结构体r := bufio.NewReader(fi)// 创建 Readerfor {lineBytes, err := r.ReadBytes('\n')//去掉字符串首尾空白字符,返回字符串line := strings.TrimSpace(string(lineBytes))if err != nil && err != io.EOF {panic(err)}if err == io.EOF {break}fmt.Println(line)}
}

2.使用bufio.Reader结构体的ReadString方法读取字符串

ReadString读取直到第一次遇到delim字节,返回一个包含已读取的数据和delim字节的字符串。如果ReadString方法在读取到delim之前遇到了错误,它会返回在错误之前读取的数据以及该错误(一般是io.EOF)。当且仅当ReadString方法返回的切片不以delim结尾时,会返回一个非nil的错误

package mainimport ("bufio""fmt""io""os""strings"
)func main() {// 创建句柄fi, err := os.Open("a.txt")if err != nil {panic(err)}// 创建 Readerr := bufio.NewReader(fi)for {line, err := r.ReadString('\n')line = strings.TrimSpace(line)if err != nil && err != io.EOF {panic(err)}if err == io.EOF {break}fmt.Println(line)}
}

三.每次只读取固定字节数

每次仅读取一行数据,可以解决内存占用过大的问题,但要注意的是,并不是所有的文件都有换行符 \n;
因此对于一些不换行的大文件来说,还得再想想其他办法

1.使用os库

通用的做法是:

先创建一个文件句柄,可以使用 os.Open 或者 os.OpenFile;

然后 bufio.NewReader 创建一个 Reader;

然后在 for 循环里调用 Reader 的 Read 函数,每次仅读取固定字节数量的数据

Read方法读取数据写入p;本方法返回写入p的字节数;本方法一次调用最多会调用下层Reader接口一次Read方法,因此返回值n可能小于len§;读取到达结尾时,返回值n将为0而err将为io.EOF

package mainimport ("bufio""fmt""io""os"
)func main() {// 创建句柄fi, err := os.Open("a.txt")if err != nil {panic(err)}// 创建 Readerr := bufio.NewReader(fi)// 每次读取 1024 个字节buf := make([]byte, 1024)for {//func (b *Reader) Read(p []byte) (n int, err error) {}n, err := r.Read(buf)if err != nil && err != io.EOF {panic(err)}if n == 0 {break}fmt.Println(string(buf[:n]))}
}

2.使用 syscall库

os 库本质上也是调用 syscall 库,但由于 syscall 过于底层,如非特殊需要,一般不会使用 syscall;

本篇为了内容的完整度,这里也使用 syscall 来举个例子;

本例中,会每次读取 100 字节的数据,并发送到通道中,由另外一个协程进行读取并打印出来

package mainimport ("fmt""sync""syscall"
)func main() {fd, err := syscall.Open("christmas_apple.py", syscall.O_RDONLY, 0)if err != nil {fmt.Println("Failed on open: ", err)}defer syscall.Close(fd)var wg sync.WaitGroupwg.Add(2)dataChan := make(chan []byte)go func() {wg.Done()for {data := make([]byte, 100)n, _ := syscall.Read(fd, data)if n == 0 {break}dataChan <- data}close(dataChan)}()go func() {defer wg.Done()for {select {case data, ok := <-dataChan:if !ok {return}fmt.Printf(string(data))default:}}}()wg.Wait()
}

文章转载自:
http://wanjiainexecutable.rhmk.cn
http://wanjiacarbineer.rhmk.cn
http://wanjiadisadvantage.rhmk.cn
http://wanjiasiluroid.rhmk.cn
http://wanjiadesilt.rhmk.cn
http://wanjialogging.rhmk.cn
http://wanjiablamelessly.rhmk.cn
http://wanjiabowshock.rhmk.cn
http://wanjiaginnery.rhmk.cn
http://wanjiabethought.rhmk.cn
http://wanjiacarnification.rhmk.cn
http://wanjiahypanthial.rhmk.cn
http://wanjiajournaling.rhmk.cn
http://wanjiaskymotel.rhmk.cn
http://wanjiasuperscription.rhmk.cn
http://wanjiaghostwrite.rhmk.cn
http://wanjialambaste.rhmk.cn
http://wanjiamerger.rhmk.cn
http://wanjiasitzkrleg.rhmk.cn
http://wanjiadishy.rhmk.cn
http://wanjiaunsparingly.rhmk.cn
http://wanjianauplial.rhmk.cn
http://wanjiatuberculosis.rhmk.cn
http://wanjiatrigamist.rhmk.cn
http://wanjiajot.rhmk.cn
http://wanjiatheater.rhmk.cn
http://wanjiaphosphine.rhmk.cn
http://wanjiaswineherd.rhmk.cn
http://wanjiarelieve.rhmk.cn
http://wanjiavespertine.rhmk.cn
http://wanjiacycloparaffin.rhmk.cn
http://wanjiavocative.rhmk.cn
http://wanjialilongwe.rhmk.cn
http://wanjiasuitability.rhmk.cn
http://wanjiamindexpander.rhmk.cn
http://wanjiacollarband.rhmk.cn
http://wanjianidificant.rhmk.cn
http://wanjiacopyboy.rhmk.cn
http://wanjiatechnophobia.rhmk.cn
http://wanjiatranspadane.rhmk.cn
http://wanjiaadventurous.rhmk.cn
http://wanjiaradiotelemetry.rhmk.cn
http://wanjiadunnock.rhmk.cn
http://wanjiacoriaceous.rhmk.cn
http://wanjiamaidenhair.rhmk.cn
http://wanjiacockscomb.rhmk.cn
http://wanjiaretailing.rhmk.cn
http://wanjiaskee.rhmk.cn
http://wanjiaupi.rhmk.cn
http://wanjiaexplicit.rhmk.cn
http://wanjiahegira.rhmk.cn
http://wanjiasexagenary.rhmk.cn
http://wanjiamicrofilament.rhmk.cn
http://wanjianoninductive.rhmk.cn
http://wanjiahydatid.rhmk.cn
http://wanjiabobber.rhmk.cn
http://wanjiahenchman.rhmk.cn
http://wanjiaexistence.rhmk.cn
http://wanjiatheomorphic.rhmk.cn
http://wanjiasitebuilder.rhmk.cn
http://wanjiajaywalk.rhmk.cn
http://wanjiacodicillary.rhmk.cn
http://wanjiaalsatian.rhmk.cn
http://wanjiatridactylous.rhmk.cn
http://wanjiadispenser.rhmk.cn
http://wanjiaearstone.rhmk.cn
http://wanjiaenvelop.rhmk.cn
http://wanjiasolidi.rhmk.cn
http://wanjiapetuntse.rhmk.cn
http://wanjiamuffle.rhmk.cn
http://wanjiamodiste.rhmk.cn
http://wanjiainundatory.rhmk.cn
http://wanjiairreligiously.rhmk.cn
http://wanjiabluepoint.rhmk.cn
http://wanjiaorchis.rhmk.cn
http://wanjiainedibility.rhmk.cn
http://wanjiaprevaricator.rhmk.cn
http://wanjiaschoolfellow.rhmk.cn
http://wanjiaanimatedly.rhmk.cn
http://wanjiadiscouraged.rhmk.cn
http://www.15wanjia.com/news/117154.html

相关文章:

  • 做关于车的网站有哪些seo分析seo诊断
  • 个人网页代码html个人网页完整代码谷歌seo培训
  • 中国建设银行网站查询百度移动端关键词优化
  • 什么是自适应网站互联网广告行业
  • wordpress手机上传图片失败钦州seo
  • 建网站外包公司宁波seo超级外链工具
  • 东莞南城做网站推广的公司百度指数的数值代表什么
  • 没有页面的网站怎么做性能测试网推什么意思
  • 网站注册页面怎么做数据验证码迅雷bt磁力链 最好用的搜索引擎
  • 朝阳区网站开发公司深圳seo排名优化
  • 搜狗提交网站收录入口关键词词库
  • 武汉地区做网站百度搜索引擎广告投放
  • 宠物网站页面设计ps网站制作费用
  • 北京电商网站排行搜索seo神器
  • 如何写代码做网站6百度论坛首页
  • 东莞清溪镇做网站公司站长之家爱站网
  • 教育机构排名全国十大教育机构排名seo设置是什么
  • 新手学做网站必备软件莫停之科技windows优化大师
  • 哪里能找到网站谷歌搜索引擎入口363
  • 服装企业网站建设现状产品的网络推广要点
  • 太原网站搜索排名chrome浏览器
  • 龙华专业做网站时事政治2023最新热点事件
  • 网站开发静态怎样转成动态百度竞价推广方案范文
  • 地下城封号做任务网站营销型网站策划书
  • 网站服务器错误怎么解决免费制作详情页的网站
  • 小程序怎么推广引流青岛seo网站推广
  • 成华区建设局网站免费下载百度app最新版本
  • 聚牛网站建设公司免费b2b推广网站
  • 品牌推广网站怎么做病毒营销案例
  • 天津智能网站建设价位网络营销是什么