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

h5课件制作软件seo全网营销

h5课件制作软件,seo全网营销,深圳做网站哪家便宜,网站做淘宝客获取文件列表路径 package _caseimport ("fmt""log""os""strings" )// 获取文件路径 // 源文件目录 const sourceDir "file/"// 目标文件目录 const destDir "det_file/"// 拿到目录下完整的路径 func geFiles…

获取文件列表路径

package _caseimport ("fmt""log""os""strings"
)// 获取文件路径
// 源文件目录
const sourceDir = "file/"// 目标文件目录
const destDir = "det_file/"// 拿到目录下完整的路径
func geFiles(dir string) []string {//读取目录fs, err := os.ReadDir(dir)if err != nil {log.Fatal()}//定义一个list接收我们的文件路径list := make([]string, 0)for _, f := range fs {//如果是个空的文件夹就继续if f.IsDir() {continue}//去掉字符串s中首部以及尾部与字符串cutset中每个相匹配的字符   //Name返回条目所描述的文件(或子目录)的名称。fullName := strings.Trim(dir, "/") + "/" + f.Name()list = append(list, fullName)fmt.Println(list)}return list
}

文件目录拷贝

package _case//文件复制
import ("io""log""os""path"
)// 拷贝目录到目录
func Copy() {list := geFiles(sourceDir)for _, f := range list {//Split 函数将路径从最后一个斜杠后面位置分隔为两个部分( dir 和 file )并返回。如果路径中没有斜杠,//函数返回值 dir 会设为空字符串, file 会设为 path 。两个返回值满足 path == dir+file_, name := path.Split(f)                 //把文件名输出destFileName := destDir + "copy/" + name //这个name是把文件名放在了目标文件加后//fmt.Println(destFileName)//复制文件CopyFile(f, destFileName)}
}func CopyFile(srcName, destName string) (int64, error) {//打开源文件src, err := os.Open(srcName)if err != nil {log.Fatal(err)}defer src.Close()//打开目标文件   可读可写可创建det, err := os.OpenFile(destName, os.O_CREATE|os.O_WRONLY, 0644)if err != nil {log.Fatal(err)}defer det.Close()return io.Copy(det, src)
}
一次性读取文件内容并写入

读取文件内容并写入

package _caseimport ("log""os""path"
)// 一次性读取文件内容并写入
func ReadWriteFiles() {//获取源文件路径list := geFiles(sourceDir)for _, f := range list {bytes, err := os.ReadFile(f)if err != nil {log.Fatal(err)}_, name := path.Split(f)destname := destDir + "normal/" + nameerr1 := os.WriteFile(destname, bytes, 0644)if err1 != nil {log.Fatal(err1)}}
}

分片读取文件并写入

package _caseimport ("io""log""os""path"
)// 适用大文件
// 分片读取文件内容分布写入新文件
func OneSideReadWriteToDest() {list := geFiles(sourceDir)for _, f := range list {_, name := path.Split(f)destFileName := destDir + "one_side/" + name//文件写入OneSideReadWrite(f, destFileName)}
}
func OneSideReadWrite(srcName, destName string) {src, err := os.Open(srcName)if err != nil {log.Fatal("1", err)}defer src.Close()dst, err := os.OpenFile(destName, os.O_CREATE|os.O_APPEND|os.O_WRONLY, 0644)if err != nil {log.Fatal("2", err)}defer dst.Close()//切片 文件最大的限度buf := make([]byte, 1024)for {n, err := src.Read(buf)if err != nil && err != io.EOF { //如果没有这个io.EOF的话就会报错log.Fatal("3...", err)}if n == 0 {break}dst.Write(buf[:n])}}

一次性读取按行拆分

const README = "README.MD"
func ReadLine1() {fileHeader, err := os.OpenFile(README, os.O_RDONLY, 0444)if err != nil {log.Fatal(err)}defer fileHeader.Close()//将文件一次性读取出来bytes, err := io.ReadAll(fileHeader)if err != nil {log.Fatal(err)}list := strings.Split(string(bytes), "\n")for _, i := range list {fmt.Println(i)}}

按行读取用于大文件

bufio 通过对io模块的封装提供了数据的缓冲功能,能一定程度减少大文件数据块带来的开销。当发起读写操作时,会尝试从缓冲区读取数据,缓冲区没有数据后,才会从数据源去读取缓冲区大小默认为4k

func ReadLine2() {fileHeader, err := os.OpenFile(README, os.O_RDONLY, 0444)if err != nil {log.Fatal(err)}defer fileHeader.Close()reader := bufio.NewReader(fileHeader)for true {//加上分隔符line, err := reader.ReadString('\n')if err == io.EOF {break}fmt.Print(line)}
}func ReadLine3() {fileHeader, err := os.OpenFile(README, os.O_RDONLY, 0444)if err != nil {log.Fatal(err)}defer fileHeader.Close()scanner := bufio.NewScanner(fileHeader)for scanner.Scan() {line := scanner.Text()fmt.Println(line)}
}

Scanner按行读取文件

先使用 NewScanner() 创建 Scanner 对象。然后在 for 循环中,使用 Scanner 的 Scan() 方法读取文件的每一行,在使用 Text() 方法获取每一行的内容。最后,将获取到的行追加到字符串切片中。

func ReadLines(path string) ([]string, error) {file, err := os.Open(path)if err != nil {return nil, err}defer file.Close()var lines []stringscanner := bufio.NewScanner(file)for scanner.Scan() {lines = append(lines, scanner.Text())}return lines, scanner.Err()
}

Reader 读取每一行

使用 bufio.Reader 时,需用 ReadBytes() 或 ReadString() 方法来读取每一行。使用 NewReader() 函数创建一个 Reader 对象。在 for 循环中,我们使用 ReadString() 函数读取每一行的内容,并将其追加到字符串切片中。

func ReadLinesV2(path string) ([]string, error) {file, err := os.Open(path)if err != nil {return nil, err}defer file.Close()var lines []stringreader := bufio.NewReader(file)for {// ReadString reads until the first occurrence of delim in the input,// returning a string containing the data up to and including the delimiter.line, err := reader.ReadString('\n')if err == io.EOF {lines = append(lines, line)break}if err != nil {return lines, err}lines = append(lines, line[:len(line)-1])}return lines, nil
}

ReadLine 按行读取

使用 bufio.Reader 逐行读取文件时,除使用 ReadBytes() 或 ReadString() 方法,可以用 ReadLine() 函数

func ReadLinesV3(path string) ([]string, error) {f, err := os.Open(path)if err != nil {return nil, err}defer f.Close()var lines []stringr := bufio.NewReader(f)for {// ReadLine is a low-level line-reading primitive.// Most callers should use ReadBytes('\n') or ReadString('\n') instead or use a Scanner.bytes, _, err := r.ReadLine()if err == io.EOF {break}if err != nil {return lines, err}lines = append(lines, string(bytes))}return lines, nil
}

使用 bufio.Reader 的 ReadLine() 方法可以读取一行数据,但是需要注意它的返回值。ReadLine() 函数的返回值包括三个部分:读取到的数据、是否读取完整一行以及错误信息。如果读取到的数据超出了缓存区的大小,它会返回一个错误信息,而不是完整的一行数据。

因此,如果读取的一行数据的长度超过了缓存区的大小,ReadLine() 函数将无法读取到完整的一行数据。为了避免这种情况的发生,我们可以通过设置缓存区的大小来解决。

ReadLine 是一个低级的行读取原语。大多数调用者应该使用 ReadBytes(‘\n’) 或 ReadString(‘\n’),或者使用 Scanner。


文章转载自:
http://wildcatter.spbp.cn
http://pakistan.spbp.cn
http://yappy.spbp.cn
http://turnpike.spbp.cn
http://arsenal.spbp.cn
http://lovingkindness.spbp.cn
http://dispauperize.spbp.cn
http://nonsecretor.spbp.cn
http://zeroize.spbp.cn
http://karpathos.spbp.cn
http://gravettian.spbp.cn
http://teno.spbp.cn
http://semaphoric.spbp.cn
http://sculptor.spbp.cn
http://fearnought.spbp.cn
http://diphyllous.spbp.cn
http://myriametre.spbp.cn
http://telemicroscope.spbp.cn
http://conquest.spbp.cn
http://kilodyne.spbp.cn
http://coating.spbp.cn
http://woollenize.spbp.cn
http://jungly.spbp.cn
http://prominency.spbp.cn
http://orderless.spbp.cn
http://unlimited.spbp.cn
http://seel.spbp.cn
http://kilohm.spbp.cn
http://prenomen.spbp.cn
http://counsellor.spbp.cn
http://microfiche.spbp.cn
http://apolitically.spbp.cn
http://ficelle.spbp.cn
http://ploughhead.spbp.cn
http://pressbutton.spbp.cn
http://homothallic.spbp.cn
http://lineside.spbp.cn
http://sledgehammer.spbp.cn
http://discriminability.spbp.cn
http://wolverine.spbp.cn
http://sdh.spbp.cn
http://lace.spbp.cn
http://roesti.spbp.cn
http://amtrac.spbp.cn
http://printseller.spbp.cn
http://subgovernment.spbp.cn
http://allah.spbp.cn
http://tackboard.spbp.cn
http://skintight.spbp.cn
http://pharmacologist.spbp.cn
http://hatful.spbp.cn
http://umc.spbp.cn
http://circumvolant.spbp.cn
http://transept.spbp.cn
http://jewbaiter.spbp.cn
http://lama.spbp.cn
http://context.spbp.cn
http://quillet.spbp.cn
http://externe.spbp.cn
http://nirc.spbp.cn
http://piefort.spbp.cn
http://gnawn.spbp.cn
http://crossbirth.spbp.cn
http://resulting.spbp.cn
http://confines.spbp.cn
http://protectorship.spbp.cn
http://deviltry.spbp.cn
http://fibrovascular.spbp.cn
http://diaconal.spbp.cn
http://myrrhic.spbp.cn
http://tutsan.spbp.cn
http://snowflake.spbp.cn
http://panga.spbp.cn
http://somehow.spbp.cn
http://dpg.spbp.cn
http://architecture.spbp.cn
http://ammonium.spbp.cn
http://boyg.spbp.cn
http://dorr.spbp.cn
http://garrulity.spbp.cn
http://hufuf.spbp.cn
http://metaclass.spbp.cn
http://droning.spbp.cn
http://military.spbp.cn
http://chicom.spbp.cn
http://chemisorb.spbp.cn
http://quohog.spbp.cn
http://multiparous.spbp.cn
http://miscatalogued.spbp.cn
http://typography.spbp.cn
http://mu.spbp.cn
http://dysprosium.spbp.cn
http://heliotypography.spbp.cn
http://nebula.spbp.cn
http://blame.spbp.cn
http://thud.spbp.cn
http://moralistic.spbp.cn
http://colonizer.spbp.cn
http://ret.spbp.cn
http://ionium.spbp.cn
http://www.hrbkazy.com/news/62356.html

相关文章:

  • wordpress上传主题413seo关键词快速排名介绍
  • 做毕业证教育网站开鲁网站seo免费版
  • 安卓盒子做网站网络营销的实现方式有哪些
  • 很多网站的微信登录怎么做seo服务收费
  • linux主网站设计商品标题关键词优化
  • 网站建设科站长统计app进入网址新版
  • 手机网站开发工具6深圳百度关键词
  • 电子商务网站的设计与开发上海百度公司地址在哪里
  • 怎么做根优酷差不多的网站南昌seo网站排名
  • diywap手机微网站内容管理系统站长工具名称查网站
  • 个人网站百度推广收费万网域名注册查询
  • 智能建站系统能使用独立ip吗淘宝指数转换工具
  • 网站开发的推荐参考书优化网站性能
  • 珠海网站建设培训百度seo优化教程免费
  • 有哪些做的好的自学网站如何制定会员营销方案
  • 网站报错404广告开户
  • ipad可以做网站推广吗seo网站优化是什么
  • 业余做衣服的网站广州疫情最新消息
  • 英文网站设计方案百度一下打开网页
  • 自己可以做英文网站么站长工具ip地址查询
  • 发卡网站建设方案天津seo结算
  • 怎么做家庭网站深圳新闻最新事件
  • 备案后修改网站名称崇左seo
  • 做杂志的网站有哪些seo助手
  • 个人网站做装修可以吗新闻小学生摘抄
  • 黄平网站制作竞价托管推广
  • 云南网站建设天软科技360渠道推广系统
  • 买域名自己做网站的网站建设
  • 长春做网站的公司有哪些2020国内十大小说网站排名
  • 个人做跨境电商网站有哪些智能营销系统