GO语言:文件操作之写入文件及iota生成常量

目录标题

  • 一、Writing files 写入文件
    • 1. Writing string to a file 写入字符串
    • 2. Writing bytes to a file 写入字节
    • 3. Writing strings line by line to a file 一行一行写入
    • 4. Appending to a file 添加内容
    • 5. Writing to file concurrently 并发写入文件
  • 二、iota 常量生成器

一、Writing files 写入文件

1. Writing string to a file 写入字符串

        package mainimport ("fmt""os")func main() {f, err := os.Create("writing.txt") // 创建文件fmt.Println(err)if err != nil { // 查看是否出错fmt.Println(err)return}l, err := f.WriteString("Hello, World!") // 写入文件fmt.Println(err)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}}// <nil>// <nil>// 13 bytes written successfully

2. Writing bytes to a file 写入字节

        package mainimport ("fmt""os")func main() {f, err := os.Create("bytes")if err != nil {fmt.Println(err)return}d2 := []byte{104, 101, 108, 108, 111, 32, 98, 121, 116, 101, 115}n, err := f.Write(d2)if err != nil {fmt.Println(err)f.Close()return}fmt.Println(n, "Bytes written successfully")err = f.Close()if err != nil {fmt.Println(err)return}}// 11 Bytes written successfully

3. Writing strings line by line to a file 一行一行写入

        package mainimport ("fmt""os")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) // 使用 fmt.Fprintln() 函数将每个元素写入文件if err != nil {fmt.Println(err)return}}err = f.Close()if err != nil {fmt.Println(err)return}fmt.Println("File written successfully")}// File written successfully

4. Appending to a file 添加内容

        package mainimport (  "fmt""os")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")}// File appended successfully

5. Writing to file concurrently 并发写入文件

        package mainimport ("fmt""math/rand""os""sync")func produce(data chan int, wg *sync.WaitGroup) {n := rand.Intn(999) 	// 随机生成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 {             	// 如果不为nil则写入失败fmt.Println(err)f.Close()done <- false 	// 传入通道失败return}}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")}}// File written successfully

读取文件请查看上一篇文章

二、iota 常量生成器

        type WeekDay intconst (Sunday WeekDay = iotaMondayTuesdayWednesdayThursdayFridaySaturday)func main() {fmt.Println(Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, WeekDay(2))fmt.Println(WeekDay(0))day := WeekDay(1)switch day {case Sunday:fmt.Println("今天是星期日")case Monday:fmt.Println("今天是星期一")case Tuesday:fmt.Println("今天是星期二")case Wednesday:fmt.Println("今天是星期三")case Thursday:fmt.Println("今天是星期四")case Friday:fmt.Println("今天是星期五")case Saturday:fmt.Println("今天是星期六")default:fmt.Println("无效的星期")}}// 0 1 2 3 4 5 6 2// 0// 今天是星期一

技术小白记录学习过程,有错误或不解的地方请指出,如果这篇文章对你有所帮助请点点赞收藏+关注谢谢支持 !!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/91590.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

UE学习记录06----根据Actor大小自适应相机位置

背景&#xff1a; staticMesh 会根据业务需要随时变化&#xff0c;然后通过staticMesh的大小自适应相机位置&#xff0c;捕捉画面用来预览该模型&#xff0c;使模型在画布中不会太大导致显示不全&#xff0c;也不会太小 参考&#xff1a; UE实现相机聚焦物体功能_右弦GISer的…

机器学习小白理解之一元线性回归

关于机器学习&#xff0c;百度上一搜一大摞&#xff0c;总之各有各的优劣&#xff0c;有的非常专业&#xff0c;有的看的似懂非懂。我作为一名机器学习的门外汉&#xff0c;为了看懂这些公式和名词真的花了不少时间&#xff0c;还因此去着重学了高数。 不过如果不去看公式&…

Linux中定时任务以及开机自启相关

一.定时任务 1.编辑任务 crontab -e #实际的地址在/var/spool/cron #编写任务 1 * * * * /myproject/sql.sh 2.查询任务 crontab -l 3.Cron表达式 * * * * *&#xff1a;每分钟都运行0 * * * *&#xff1a;每小时的第0分钟运行0 2 * * *&#xff1a;每天凌晨2点运行0 2 *…

WebGL笔记:使用鼠标绘制多个线条应用及绘制动感线性星座

使用鼠标绘制多个线条 多个线条&#xff0c;肯定不是一笔画过的&#xff0c;而是多次画的线条既然是多线&#xff0c;那就需要有个容器来管理它们 1 &#xff09;建立容器对象 建立一个 lineBox 对象&#xff0c;作为承载多边形的容器 // lineBox.js export default class …

记忆化搜索,901. 滑雪

901. 滑雪 - AcWing题库 给定一个 R 行 C 列的矩阵&#xff0c;表示一个矩形网格滑雪场。 矩阵中第 i行第 j 列的点表示滑雪场的第 i 行第 j列区域的高度。 一个人从滑雪场中的某个区域内出发&#xff0c;每次可以向上下左右任意一个方向滑动一个单位距离。 当然&#xff0…

数据结构--栈的实现

数据结构–栈的实现 1.栈的概念和结构&#xff1a; 栈的概念&#xff1a;栈是一种特殊的线性表&#xff0c;其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端 称为栈顶&#xff0c;另一端称为栈底。栈中的数据元素遵守后进先出LIFO&#xff08;Las…

SpringMVC 学习(三)注解开发

4. 注解开发 4.1 环境搭建 (1) 新建 maven 模块 springmvc-03-annotation (2) 确认依赖 确认方法同 3(2)&#xff0c;手动导入发布依赖见3(11) <!--资源过滤--> <build><resources><resource><directory>src/main/java</directory>&…

PostMan的学习

PostMan的学习 目录 环境变量和全局变量接口关联内置动态参数以及自定义动态参数实现业务闭环Postman断言批量运行collection数据驱动之CSV文件和JSON文件测试必须带请求头的接口Mock Serviers 服务器Cookie鉴权NewmanPostManNewManjenkins实现接口测试持续集成 参考资料&am…

Kerberos常见报错汇总

一.kdb5_util: Password mismatch while reading master key from keyboard 1>.错误复现 2>.错误原因分析 在初始化Kerberos数据库时需要输入密码&#xff0c;2次密码输入不一致就会导致该错误。 3>.解决方案 重新执行"kdb5_util -r YINZHENGJIE.COM create -s…

Mendix中的依赖管理:npm和Maven的应用

序言 在传统java开发项目中&#xff0c;我们可以利用maven来管理jar包依赖&#xff0c;但在mendix项目开发Custom Java Action时&#xff0c;由于目录结构有一些差异&#xff0c;我们需要自行配置。同样的&#xff0c;在mendix项目开发Custom JavaScript Action时&#xff0c;…

数据集笔记:旧金山共享单车OD数据

数据地址&#xff1a;System Data | Bay Wheels | Lyft

使用不同尺寸的传感器拍照时,怎么保证拍出同样视场范围的照片?

1、问题背景 使用竞品机做图像效果对比时&#xff0c;我们通常都会要求拍摄的照片要视场范围一致&#xff0c;这样才具有可比性。之前我会考虑用同样焦距、同样分辨率的设备去拍照对比就可以了&#xff0c;觉得相机的视场范围只由镜头焦距来决定。 但如果对于不同尺寸的传感器…

Spring修炼之旅(3)自动装配与注解开发

一、自动装配说明 1.1概述 自动装配是使用spring满足bean依赖的一种方法 spring会在应用上下文中为某个bean寻找其依赖的bean。 1.2装配机制 Spring中bean有三种装配机制&#xff0c;分别是&#xff1a; 在xml中显式配置&#xff1b; 在java中显式配置&#xff1b; 隐式…

【Java 进阶篇】MySQL 数据控制语言(DCL):管理用户权限

MySQL 是一个强大的关系型数据库管理系统&#xff0c;提供了丰富的功能和选项来管理数据库和用户。数据库管理员&#xff08;DBA&#xff09;通常使用数据控制语言&#xff08;Data Control Language&#xff0c;简称 DCL&#xff09;来管理用户的权限和访问。 本文将详细介绍…

定义现代化实时数据仓库,SelectDB 全新产品形态全面发布

导读&#xff1a;9 月 25 日&#xff0c;2023 飞轮科技产品发布会在线上正式召开&#xff0c;本次产品发布会以 “新内核、新图景” 为主题&#xff0c;飞轮科技 CEO 马如悦全面解析了现代化数据仓库的演进趋势&#xff0c;宣布立足于多云之上的 SelectDB Cloud 云服务全面开放…

数据结构——堆(C语言)

本篇会解决一下几个问题&#xff1a; 1.堆是什么&#xff1f; 2.如何形成一个堆&#xff1f; 3.堆的应用场景 堆是什么&#xff1f; 堆总是一颗完全二叉树堆的某个节点总是不大于或不小于父亲节点 如图&#xff0c;在小堆中&#xff0c;父亲节点总是小于孩子节点的。 如图&a…

华为ensp单臂路由及OSPF实验

单臂路由及OSPF实验 1.1实验背景 在这个实验中&#xff0c;我们模拟了一个复杂的网络环境&#xff0c;该网络环境包括多个子网和交换机。这个实验旨在帮助网络工程师和管理员了解如何配置单臂路由和使用开放最短路径优先&#xff08;OSPF&#xff09;协议来实现不同子网之间的…

从 低信噪比陆上地震记录 解决办法收集 到 走时层析反演中的折射层析调研

目录 (前言1) 关于背景的回答:(前言2) 现有的降低噪声, 提高信噪比的一些特有方法的论文资料 (传统策略):1. 关于波形反演与走时层析反演2. 折射层析3. 用一个合成数据来解释折射层析反演的思路4. 其他层析反演方法:5. 关于层析反演的一些TIPS (可补充)参考文献: 降噪有关资料参…

MySQL系统架构设计

MySQL 一、MySQL整体架构1.1 SQL接口1.2 解析器 Parser1.3 查询优化器 Optimizer1.3.1 逻辑优化1.3.2 物理优化1.3.3 explain1.4 缓存 Cache1.5 存储引擎 Stroage Management1.6 一条查询SQL的执行流程二、缓存池(Buffer Pool)2.1 Buffer Pool 预读机制2.2 Buffer Pool free链…

SpringBoot使用Docker并上传至DockerHub

我的新书《Android App开发入门与实战》已于2020年8月由人民邮电出版社出版&#xff0c;欢迎购买。点击进入详情 文章目录 1.系列文章2.构建docker镜像的方式3.docker操作3.1 安装docker3.2 查看docker镜像3.3 本地运行docker3.4 修改tag3.5 推送docker镜像3.6 远端server拉取d…