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

网站关键词优化实验结果分析工厂招工信息

网站关键词优化实验结果分析,工厂招工信息,网站建设企业属于什么类型的公司,商丘网络电视台在本教程中#xff0c;我们将学习如何使用 Go 将数据写入文件。我们还将学习如何同时写入文件。 本教程有以下部分 将字符串写入文件将字节写入文件逐行将数据写入文件附加到文件同时写入文件 由于 Playground 不支持文件操作#xff0c;请在本地系统中运行本教程的所有程…在本教程中我们将学习如何使用 Go 将数据写入文件。我们还将学习如何同时写入文件。 本教程有以下部分 将字符串写入文件将字节写入文件逐行将数据写入文件附加到文件同时写入文件 由于 Playground 不支持文件操作请在本地系统中运行本教程的所有程序。 将字符串写入文件 最常见的文件写入操作之一是将字符串写入文件。这很简单。它由以下步骤组成。 创建文件将字符串写入文件 让我们立即开始讨论代码。 package mainimport (fmtos )func main() {f, err : os.Create(test.txt)if err ! nil {fmt.Println(err)return}l, err : f.WriteString(Hello World)if err ! nil {fmt.Println(err)f.Close()return}fmt.Println(l, bytes written successfully)err f.Close()if err ! nil {fmt.Println(err)return} }上面程序第 9 行中的函数创建了一个名为 test.txt 的文件。如果具有该名称的文件已存在则 create 函数将截断该文件。此函数返回 File 描述符。https://pkg.go.dev/os#File)。 在第 14 行我们使用 方法将字符串Hello World写入文件WriteString。此方法返回写入的字节数和错误如果有。 最后我们关闭第 1 行的文件。21. 上面的程序会打印 11 bytes written successfully您可以找到在执行该程序的目录中创建的名为test.txt的文件。如果使用任何文本编辑器打开该文件您可以发现它包含文本Hello World。 将字节写入文件 将字节写入文件与将字符串写入文件非常相似。我们将使用 Write 方法将字节写入文件。以下程序将字节切片写入文件。 package mainimport (fmtos )func main() {f, err : os.Create(/home/naveen/bytes)if err ! nil {fmt.Println(err)return}d2 : []byte{104, 101, 108, 108, 111, 32, 98, 121, 116, 101, 115}n2, err : f.Write(d2)if err ! nil {fmt.Println(err)f.Close()return}fmt.Println(n2, bytes written successfully)err f.Close()if err ! nil {fmt.Println(err)return} } 在上面的程序中在第 15 行中我们使用 Write 方法将字节切片写入目录中命名的文件。您可以将此目录更改为其他目录。其余程序是不言自明的。该程序将打印并创建一个名为 .打开文件您可以看到它包含文本 逐行将字符串写入文件 另一种常见的文件操作是需要将字符串逐行写入文件。在本节中我们将编写一个程序来创建包含以下内容的文件。 Welcome to the world of Go. Go is a compiled language. It is easy to learn Go.让我们立即开始讨论代码。 package mainimport (fmtos )func main() {f, err : os.Create(lines)if err ! nil {fmt.Println(err)f.Close()return}d : []string{Welcome to the world of Go1., Go is a compiled language., It is easy to learn Go.}for _, v : range d {fmt.Fprintln(f, v)if err ! nil {fmt.Println(err)return}}err f.Close()if err ! nil {fmt.Println(err)return}fmt.Println(file written successfully) } 在上面程序的第 9 行中我们创建了一个名为 lines 的新文件。在第 17 行中我们使用 for range 循环遍历数组并使用 Fprintln 函数将行写入文件。Fprintln 函数将 a 作为参数并附加一个新行这正是我们想要的。运行此程序将打印并在当前目录中创建一个文件。该文件的内容如下 Welcome to the world of Go1. Go is a compiled language. It is easy to learn Go.追加到文件 在本节中我们将在上一节中创建的文件后再附加一行。我们将在文件后面附加一行文件处理很容易。 文件必须以追加和只写模式打开。这些标志作为参数传递给 Open 函数。在追加模式下打开文件后我们将新行添加到文件中。 package mainimport (fmtos )func main() {f, err : os.OpenFile(lines, os.O_APPEND|os.O_WRONLY, 0644)if err ! nil {fmt.Println(err)return}newLine : File handling is easy._, err fmt.Fprintln(f, newLine)if err ! nil {fmt.Println(err)f.Close()return}err f.Close()if err ! nil {fmt.Println(err)return}fmt.Println(file appended successfully) } 在上面程序的第 9 行中我们以追加和只写模式打开文件。文件打开成功后我们在第 15 行的文件中添加一个新行。该程序将打印 .运行此程序后文件的内容将是 Welcome to the world of Go1. Go is a compiled language. It is easy to learn Go. File handling is easy.并发写入文件 当多个goroutine同时写入文件时我们最终会遇到竞争条件。因此必须使用通道来协调对文件的并发写入。 我们将编写一个创建 100 个 goroutine 的程序。每个 goroutine 都会同时生成一个随机数总共生成一百个随机数。这些随机数将被写入文件中。我们将使用以下方法解决竞争条件问题。 创建一个用于读取和写入生成的随机数的通道。创建 100 个生产者 goroutine。每个 goroutine 都会生成一个随机数并将该随机数写入通道。创建一个消费者 goroutine将从通道读取数据并将生成的随机数写入文件。因此我们只有一个 goroutine 同时写入文件从而避免竞争条件完成后关闭文件。 让我们produce首先编写生成随机数的函数。 func produce(data chan int, wg *sync.WaitGroup) {n : rand.Intn(999)data - nwg.Done() } 上面的函数生成一个随机数并将其写入通道data然后调用Done等待组以通知其任务已完成。 现在让我们转到写入文件的函数。 func consume(data chan int, done chan bool) {f, err : os.Create(concurrent)if err ! nil {fmt.Println(err)return}for d : range data {_, err fmt.Fprintln(f, d)if err ! nil {fmt.Println(err)f.Close()done - falsereturn}}err f.Close()if err ! nil {fmt.Println(err)done - falsereturn}done - true } 该consume函数创建一个名为concurrent. 然后它从通道读取随机数data并写入文件。一旦它读取并写入了所有随机数它就会写入true通道done以通知它已完成其任务。 让我们编写main函数并完成这个程序。我在下面提供了整个程序。 package mainimport (fmtmath/randossync )func produce(data chan int, wg *sync.WaitGroup) {n : rand.Intn(999)data - nwg.Done() }func consume(data chan int, done chan bool) {f, err : os.Create(concurrent)if err ! nil {fmt.Println(err)return}for d : range data {_, err fmt.Fprintln(f, d)if err ! nil {fmt.Println(err)f.Close()done - falsereturn}}err f.Close()if err ! nil {fmt.Println(err)done - falsereturn}done - true }func main() {data : make(chan int)done : make(chan bool)wg : sync.WaitGroup{}for i : 0; i 100; i {wg.Add(1)go produce(data, wg)}go consume(data, done)go func() {wg.Wait()close(data)}()d : -doneif d {fmt.Println(File written successfully)} else {fmt.Println(File writing failed)} } main 函数在第 41 行创建通道从中读取和写入随机数。第 42 行中的通道被 goroutine 用来通知它已完成其任务。第 43 行中的等待组用于等待所有 100 个 goroutines 完成随机数的生成。 第 44 行中的循环创建了 100 个 goroutine。第 49 行中的 goroutine 调用要求等待组等待所有 100 个 goroutine 完成创建随机数。之后它关闭通道。一旦通道关闭并且 goroutine 将所有生成的随机数写入文件它就会写入第 37 行中的通道并且主 goroutine 被解锁并打印。 现在您可以在任何文本编辑器中并发打开文件并查看生成的 100 个随机数:) 本教程到此结束。希望您喜欢阅读。祝你有美好的一天。
http://www.w-s-a.com/news/523748/

相关文章:

  • h5网站建设+案例住房住房和城乡建设部网站
  • 建设股公司网站东莞建设网网上平台
  • 湖州吴兴建设局网站加强网站建设的
  • 茌平做网站公司专业商城网站建设报价
  • 网站结构图怎么画wordpress注册不发送件
  • 个人备案网站可以做论坛吗电商推广方式有哪些
  • 网站建设 自适应国内最近的新闻
  • 校园网站开发背景吴江网站建设公司
  • 网站开发工程师发展趋势山东省建设工程电子信息网站
  • 适合大学生创业的网站建设类型吉林省舒兰市建设银行网站
  • 呼和浩特网站建设哪家好培训学校加盟费用
  • 网站如何做友情链接有道云笔记WordPress
  • 贵阳企业网站建设制作赤峰浩诚网站建设公司
  • asp官方网站微信模板素材
  • wordpress 留言给站长发邮件做百度推广员赚钱吗
  • 北京建站公司做网站价格专门找人做软件的网站
  • 商务网站的特点ui软件界面设计
  • 广州个性化网站开发网站索引量是什么意思
  • 公司网站制作专业公司python做后台网站的多吗
  • 桂林建站平台哪家好给别人做网站怎么收取费用
  • python做网站显示表格用visual做的网站
  • 彩票网站建设需要什么聊城网站建设首选天成网络
  • 安徽建设工程网站wordpress标签云代码
  • 推荐佛山顺德网站建设手机网站建设域名空间
  • 电子商务网站建设策划书例子企业官网用什么cms系统
  • 网站栏目设计怎么写平面设计接单报价表
  • 做网站美工要学什么网站推广的方法包括
  • 哪个网站可以做笔译兼职wordpress加表单
  • 百度站内搜索 wordpress微餐饮建站费用
  • 用什么做网站的访问量统计制作手工作品