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

Go (一) 基础部分4 -- 文件处理

一、文件基本介绍

1.1、打开一个文件

基本介绍:打开一个文件用于读取,如果操作成功,返回的文件对象的方法可用于读取文件数据。如果出错,错误底层类型是"*.PathError"

func Open(name string) (*File, error)

name string:打开的文件路径

*File:返回值1,文件对象

error:返回值2,错误err

1.2、关闭一个文件

基本介绍:语法如下

func (f *File) Close() error

(f *File) Close():文件对象的Close方法

error:返回值1,错误err

打开文件,关闭文件,快速入门案例:

package mainimport ("fmt""os"
)func main() {// 打开一个文件(默认有2个返回值:文件对象,错误)file, err:=os.Open("sudada.log")// 如果err有值,则输出错误if err != nil {fmt.Println("打开文件失败,错误:",err)}// 通过文件对象file的值fmt.Println(file) // 返回值:&{0xc000100a00}fmt.Println(file.Name()) // 返回值:sudada.log// 关闭文件(默认有1个返回值:错误)close_err := file.Close()if close_err != nil {fmt.Println("打开文件失败,错误:",close_err)}
}

1.3、读文件内容

1.读取文件内容并显示在终端(带缓冲区的方式):使用bufio.NewReader(),reader.ReadString函数和方法。

步骤:先打开文件,然后读文件,最后关闭文件

package mainimport ("bufio""fmt""io""os"
)func main() {// 打开一个文件(有2个返回值:文件对象,错误)file, err:=os.Open("sudada.log")// 如果err有值,则输出错误if err != nil {fmt.Println("打开文件失败,错误:",err)}// 在函数要退出时,关闭文件defer file.Close()// 创建一个 *Reader,是带缓冲的(默认4096字节)reader := bufio.NewReader(file)// 循环读取文件的内容: reader.ReadString (有2个返回值:文件内容,错误)for {str,err := reader.ReadString('\n') // 读到"换行"就结束// 读到文件结尾时,就breakif err == io.EOF {break}// 打印读取到的文件内容fmt.Print(str)// 返回值:hello world// 返回值:sudada// 返回值:beijing}
}

2.读取文件内容并显示在终端(使用ioutil一次将整个文件读入到内存中),这种方式适合小文件:使用ioutil.ReadFile函数

步骤:一次将文件读取到位

package mainimport ("fmt""io/ioutil"
)func main() {// 使用ioutil.ReadFile一次性将文件读取到位file := "sudada.log"content,err := ioutil.ReadFile(file)if err != nil {fmt.Println(err)}// 显示读取的内容fmt.Printf("%v",string(content))// hello world// sudada// beijing// shanghai
}

1.4、写文件

基本介绍:语法如下

func OpenFile(name string, flag int, perm FileMode) (file *File, err error)

name string:打开的文件

flag int:文件打开的模式

只读模式
只写模式

读写模式

perm FileMode:文件的权限控制(linux)

file *File:返回值1,文件对象

err error:返回值2,错误err

快速入门案例:

相关文章:

Go (一) 基础部分4 -- 文件处理

一、文件基本介绍 1.1、打开一个文件 基本介绍:打开一个文件用于读取,如果操作成功,返回的文件对象的方法可用于读取文件数据。如果出错,错误底层类型是"*.PathError" func Open(name string) (*File, error) name stri…...

集合03 Collection (List) - Java

List ArrayListArrayList注意事项ArrayList底层操作机制-源码分析(重点) VectorVector基本介绍 ——Vector和ArrayList比较Vector底层结构和源码分析 LinkedList基本介绍LinkedList的底层结构和操作机制LinkedList的增删改查 ——LinkedList和ArrayList比…...

国产化软件突围!怿星科技eStation产品荣获2023铃轩奖“前瞻优秀奖”

11月11日,2023中国汽车供应链峰会暨第八届铃轩奖颁奖典礼在江苏省昆山市举行。怿星科技凭借eStation产品,荣获2023铃轩奖“前瞻智能座舱类优秀奖”,怿星CEO潘凯受邀出席铃轩奖晚会并代表领奖。 2023铃轩奖“前瞻智能座舱类优秀奖” 铃轩奖&a…...

如何解决Redis热Key问题?

Redis热点key是指访问频率较高的key,当大量的请求集中在一个或少数几个热点key上时,会导致这些key所在的Redis节点的CPU、内存和网络带宽等资源被大量消耗,影响Redis集群的整体性能和稳定性。 热点Key带来的问题 Redis节点负载过高&#xff1…...

react Hooks之useId

当我们在编写React组件时,有时需要为元素生成唯一的ID。这种情况经常出现在表单元素、标签和用于无障碍性的目的上。React提供了一个名为useId的自定义Hook,它可以帮助我们生成唯一的ID。 1、作用: 用于生成一个唯一的 ID。这个 ID 可以用于…...

2023年全球软件开发大会(QCon广州站2023)-核心PPT资料下载

一、峰会简介 本次峰会包含:泛娱乐时代的边缘计算与通讯、稳定性即生命线、下一代软件架构、出海的思考、现代数据架构、AGI 与 AIGC 落地、大前端技术探索、编程语言实战、DevOps vs 平台工程、新型数据库、AIGC 浪潮下的企业出海、AIGC 浪潮下的效能智能化、数据…...

MicroSD 卡 使用读卡器 读取速度测试

设备 - - 电脑为m.2固态硬盘 usb口为USB3.2 gen2接口(即支持1GB/s的接口) cpu: amd3600 测试方案1 直接MicroSD卡放入读卡器测试 38MB/s 从sd卡复制到本地C盘 测试方案2 MicroSD卡使用闪迪的SD卡套套上之后一起插入读卡器 76MB/s 从sd卡复制到本地C盘...

Selenium+Unittest+HTMLTestRunner框架更改为Selenium+Pytest+Allure(一)

背景:之前的框架,Selenium是3.x版本,现在更新到4.15版本后,一些写法如find_element_by_xxx 不再支持,改为find_element(By.xxx)的方式,同时由于Unittest不如Pytest在执行方面灵活(比如只执行冒烟…...

LoRA(Low-Rank Adaptation)

LoRA(Low-Rank Adaptation) LoRA(Low-Rank Adaptation)是一种针对深度学习模型的参数调整方法,特别适用于大型预训练模型如GPT-3或BERT。它通过在模型的原有权重上添加低秩(low-rank)矩阵&…...

【银行测试】第三方支付功能测试点+贷款常问面试题(详细)

前言 1、第三方支付功能测试点 支付流程: 我们在测试一个功能时,需要先了解一下这个逻辑,而订单支付逻辑普遍都会有以下内容: 1)创建本地唯一订单号; 2)去调用支付,在支付平台生…...

前端:HTML+CSS+JavaScript实现轮播图2

前端:HTMLCSSJavaScript实现轮播图2 1. 和之前版本的区别2. 实现原理3. 针对上述的改进3. 参考代码 1. 和之前版本的区别 之前发布的那篇关于轮播图的文章在这:前端:HTMLCSSJavaScript实现轮播图,只能说存在问题吧!比…...

使用条件格式突出显示单元格数据-sdk

使用条件格式突出显示单元格数据 2023 年 12 月 6 日 根据数据值将视觉提示应用于特定单元格、行或列,从而更轻松地识别模式和趋势。 网格中的条件格式允许用户根据单元格或范围包含的数据将视觉样式应用于单元格或范围。它通过以数据驱动的方式突出显示关键值、异常…...

java面试题-Dubbo和zookeeper运行原理

远离八股文,面试大白话,通俗且易懂 看完后试着用自己的话复述出来。有问题请指出,有需要帮助理解的或者遇到的真实面试题不知道怎么总结的也请评论中写出来,大家一起解决。 java面试题汇总-目录-持续更新中 分布式注册中心和服务调…...

XSS漏洞 深度解析 XSS_labs靶场

XSS漏洞 深度解析 XSS_labs靶场 0x01 简介 XSS原名为Cross-site Sciprting(跨站脚本攻击),因简写与层叠样式表(Cascading style sheets)重名,为了区分所以取名为XSS。 这个漏洞主要存在于HTML页面中进行动态渲染输出的参数中,利用了脚本语…...

C++的左值、右值、左值引用和右值引用

目录 左值和右值左值引用右值引用 参考《现代C语言核心特性解析》 以下加粗文字都是摘自本书。 左值和右值 左值和右值得概念在C98就出现了,根据字面意思理解就是:左值是表达式等号左边的值,右值是表达式等号右边的值。 int x 1; int y …...

罗技鼠标使用接收器和电脑重新配对

罗技鼠标使用接收器和电脑重新配对 文章目录 罗技鼠标使用接收器和电脑重新配对1\. 前言2\. 安装软件3\. 进行配对3.1. 取消之前的配对3.2. 重新配对3.3 配对完成 4\. 报错4.1. 重新配对时显示配对未成功 1. 前言 罗技的鼠标出厂的时候,默认的是将通道一设置为接收…...

高项备考葵花宝典-项目进度管理输入、输出、工具和技术(下,很详细考试必过)

项目进度管理的目标是使项目按时完成。有效的进度管理是项目管理成功的关键之一,进度问题在项目生命周期内引起的冲突最多。 小型项目中,定义活动、排列活动顺序、估算活动持续时间及制定进度模型形成进度计划等过程的联系非常密切,可以视为一…...

GumbleSoftmax感性理解--可导式输出随机类别

GumbleSoftmax 本文不涉及GumbleSoftmax的具体证明和推导,有需要请参见1,只是从感性角度来直观讲解为何要引入GumbleSoftmax,同时又为什么不用Gumblemax。 GumbleSoftmax提出是为了应对分布采样不可导的问题。举例而言,我们从网络…...

ROS gazebo 机器人仿真,环境与robot建模,添加相机 lidar,控制robot运动

b站上有一个非常好的ros教程234仿真之URDF_link标签简介-机器人系统仿真_哔哩哔哩_bilibili,推荐去看原视频。 视频教程的相关文档见:6.7.1 机器人运动控制以及里程计信息显示 Autolabor-ROS机器人入门课程《ROS理论与实践》零基础教程 本文对视频教程…...

人体关键点检测3:Android实现人体关键点检测(人体姿势估计)含源码 可实时检测

目录 1. 前言 2.人体关键点检测方法 (1)Top-Down(自上而下)方法 (2)Bottom-Up(自下而上)方法: 3.人体关键点检测模型训练 4.人体关键点检测模型Android部署 (1) 将Pytorch模型转换ONNX模型 (2) 将ONNX模型转换…...

告别645,聊聊698协议:面向对象的电表通信到底好在哪?

698协议深度解析:面向对象设计如何重塑电表通信生态 当电力行业从单向计量迈向双向互动时,传统645协议的数据标识系统开始显露出架构层面的局限性。某省级电网公司的技术团队在2020年做过一次压力测试:在使用645协议的场景下,要实…...

AI Agent到底是什么

AI Agent 到底是什么?看完我悟了 今天看了几个产品,跟 AI 聊了聊,突然对 AI Agent 有了个很朴素的理解。AI Agent 不神秘 很多人觉得 AI Agent 是什么高深的东西,只有大厂才能搞。 但我现在的理解就一句话:❝ 「AI Age…...

在数据预处理流水线中集成 Taotoken 进行文本摘要与分类

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 在数据预处理流水线中集成 Taotoken 进行文本摘要与分类 对于数据工程师和算法工程师而言,构建一个稳定、高效且成本可…...

Fast-GitHub:智能网络优化架构解析与分布式加速方案

Fast-GitHub:智能网络优化架构解析与分布式加速方案 【免费下载链接】Fast-GitHub 国内Github下载很慢,用上了这个插件后,下载速度嗖嗖嗖的~! 项目地址: https://gitcode.com/gh_mirrors/fa/Fast-GitHub 在国内开发者面临G…...

杨立昆转推“Meta AI 已死”:一场大厂AI战略的自杀式摇摆

好家伙,杨立昆(Yann LeCun)亲自转发“讣告”了。 就昨天,这位 Meta 的首席 AI 科学家,在 X 上转了一条推,内容直指自家公司——Meta AI 部门“已死”。原文副标题更狠:“自研人才流失&#xff0…...

手把手教你用Vivado配置Xilinx SEM IP 3.1:从IP Catalog到Tera Term串口调试全流程

手把手教你用Vivado配置Xilinx SEM IP 3.1:从IP Catalog到Tera Term串口调试全流程 在FPGA开发中,软错误缓解(SEM)IP核是确保设计可靠性的关键组件。对于使用Xilinx Artix-7系列芯片的工程师来说,掌握SEM IP的完整配置…...

数据库安全与权限管理

数据库安全与权限管理 1. 技术分析 1.1 数据库安全概述 数据库安全是保护数据资产的关键: 安全威胁未授权访问: 密码泄露SQL注入: 恶意SQL数据泄露: 敏感信息暴露数据篡改: 非法修改安全措施:访问控制加密存储审计日志1.2 权限管理 权限级别全局权限: ALL PRIVILEGE…...

LAV Filters深度解析:开源DirectShow媒体解码器的架构原理与性能优化指南

LAV Filters深度解析:开源DirectShow媒体解码器的架构原理与性能优化指南 【免费下载链接】LAVFilters LAV Filters - Open-Source DirectShow Media Splitter and Decoders 项目地址: https://gitcode.com/gh_mirrors/la/LAVFilters LAV Filters是一套基于F…...

Claude Code + OpenCode + OpenSpec 规范驱动开发实战:AI 驱动智能客服管理系统开发

当 AI 编程从“凭感觉聊天”升级为“按规范执行的流水线” 一、引言:AI 编程的“效率悖论” 2024 年 Google DORA 报告揭示了一个令人困惑的数据:AI 编码助手采用率每提升 25%,软件交付稳定性反而下降 7.2%。主观上开发者觉得用 AI 写代码速…...

从信号放大器到协议感知:深入解析Retimer与Redriver在高速链路中的角色演进

1. 高速链路中的信号完整性挑战 当你把手机靠近路由器时,网速会突然变快;用Type-C线连接移动硬盘传输大文件时,偶尔会出现卡顿——这些现象背后都隐藏着信号完整性这个关键问题。在AI服务器、数据中心互连、高端显卡这些需要高速数据传输的场…...