golang文件内容覆盖问题

项目场景:

通过golang读取数据库站点映射配置,生成nginx conf文件,并检查和重启nginx服务,已达到站点自动化部署目的。


问题描述

当目标文件中内容很长,而写入的内容很短时,目标文件内容无法完全覆盖。

package mainimport ("os"
)func ConfWrite() error {config := confTemplate()fileName := "/Users/test/Documents/test.txt"f, err := os.OpenFile(fileName, os.O_CREATE|os.O_RDWR, 0666)if err != nil {return err}defer f.Close()if _, err = f.WriteString(config); err != nil {return err}return nil
}func confTemplate() string {return `<<listenPort>>server{listen 80;listen 443 ssl;server_name xxx.com;location / {<<proxyPass>>root /data/test;}}`
}func main() {_ = ConfWrite()
}

原因分析:

此分析未必正确,日后查到确切原因,再来补充。

os.OpenFile(fileName, os.O_CREATE|os.O_RDWR, 0666) 此函数打开文件时,缓冲区的长度由原文件的内容决定。如果使用f.WriteString(str) 写入的str内容比原文件缓冲区的长度短,则原文件尾部的部分内容会保留。并未实现完全覆盖的效果。如果str内容比原文件缓冲区的长度长,则原文件会被完全覆盖。


解决方案:

添加os.O_TRUNC,清空文件。

os.OpenFile(fileName, os.O_CREATE|os.O_RDWR|os.O_TRUNC, 0666)

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

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

相关文章

最新版docker-compose安装

Ubuntu/Kali 下载安装最新版 docker-compose # FastGit加速 sudo curl -L "https://hub.fgit.cf/docker/compose/releases/download$(curl -L -i -s -o /dev/null -w "%{url_effective}\n" https://hub.fgit.cf/docker/compose/releases/latest | awk -F tag …

2024新年烟花代码完整版

文章目录 前言烟花效果展示使用教程查看源码HTML代码CSS代码JavaScript 新年祝福 前言 在这个充满希望和激动的2024年&#xff0c;新的一年即将拉开帷幕&#xff0c;而数字科技的创新与发展也如火如荼。烟花绚丽多彩的绽放&#xff0c;一直以来都是新年庆典中不可或缺的元素。…

学会这13个 Git 命令就够了!

提到版本控制工具Git&#xff0c;相信很多开发者都知道&#xff0c;其实我们在99%的日常时间里&#xff0c;只需要学会以下13个git命令就行了&#xff0c;让我们来一起看看吧&#xff01; 1、git init 这个命令是初始化一个新的Git仓库&#xff0c;即在当前目录中创建一个名为…

为什么伦敦金交易应该使用4小时以上的周期?

做伦敦金前&#xff0c;要先对市场走势进行分析。而分析市场总是涉及时间周期等问题&#xff0c;这也是投资者们存在疑惑的地方。到底我们需要选择什么时间周期呢&#xff1f;各人有个人的看法&#xff0c;而其中一种意见是&#xff0c;我们不应该使用低于4小时的周期&#xff…

【方差分析原理简介】

文章目录 方差分析&#xff08;Analysis of Variance&#xff0c;简称ANOVA&#xff09;1 方差分析流程2 借助sklean进行基于方差分析的特征筛选3 总结 方差分析&#xff08;Analysis of Variance&#xff0c;简称ANOVA&#xff09; 卡方检验更多的会考虑在衡量两个离散变量是…

【Java技术专题】「攻破技术盲区」攻破Java技术盲点之unsafe类的使用指南(打破Java的安全管控— sun.misc.unsafe)

Java后门机制 — sun.misc.unsafe 打破Java的安全管控关于Unsafe的编程建议实例化Unsafe后门对象使用sun.misc.Unsafe创建实例单例模式处理实现浅克隆&#xff08;直接获取内存的方式&#xff09;直接使用copyMemory原理分析 密码安全使用Unsafe类—示例代码 运行时动态创建类超…

敦煌网、国际站自养号测评:店铺销售怎么提高?

随着互联网的快速发展&#xff0c;电子商务成为了现代商业的重要组成部分。在众多电商平台中&#xff0c;敦煌网作为中国文化艺术产品的专业电商平台&#xff0c;吸引了大量消费者的关注。然而&#xff0c;如何提高敦煌网的销售业绩&#xff0c;成为了商家们共同面临的挑战。 …

diffusers加速文生图速度;stable-diffusion、PixArt-α

参考: https://pytorch.org/blog/accelerating-generative-ai-3/ https://colab.research.google.com/drive/1jZ5UZXk7tcpTfVwnX33dDuefNMcnW9ME?usp=sharing#scrollTo=jueYhY5YMe22 大概GPU资源8G-16G;另外模型资源下载慢可以在国内镜像:https://aifasthub.com/ 1、加速…

查看Linux磁盘空间

(1)、该命令会列出当前系统所有挂载的文件系统以及它们的使用情况&#xff0c;包括总容量、已用空间、可用空间、使用百分比等信息 df -h如果查看某一个文件夹的,可以 df -h folderName (2)、计算指定目录下所有文件和子目录所占用的磁盘空间大小&#xff0c;并以人类可读的格…

机器学习周刊 第4期:动手实战人工智能、计算机科学热门论文、免费的基于ChatGPT API的安卓端语音助手、每日数学、检索增强 (RAG) 生成技术综述

LLM开发者必读论文&#xff1a;检索增强&#xff08;RAG&#xff09;生成技术综述&#xff01; 目录&#xff1a; 1、动手实战人工智能 Hands-on Al2、huggingface的NLP、深度强化学习、语音课3、Awesome Jupyter4、计算机科学热门论文5、LLM开发者必读论文:检索增强 (RAG) 生…

Python基础(二十四、JSON和pyecharts)

文章目录 一、JSON1.JSON介绍2.JSON格式数据转化3.示例 二、pyecharts1.安装pyecharts包2.查看官方示例 三、开发示例 一、JSON 1.JSON介绍 JSON是一种轻量级的数据交互格式&#xff0c;采用完全独立于编程语言的文本格式来存储和表示数据&#xff08;就是字符串&#xff09;…

信息学奥赛一本通1013:温度表达转化

1013&#xff1a;温度表达转化 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 147346 通过数: 89341 【题目描述】 利用公式 C5(F−32)9C5(F−32)9(其中CC表示摄氏温度&#xff0c;FF表示华氏温度)进行计算转化,输入华氏温度FF&#xff0c;输出摄氏温度CC&#…

探索未来餐饮:构建创新连锁餐饮系统的技术之旅

随着数字化时代的发展&#xff0c;连锁餐饮系统的设计和开发不再仅仅关乎订单处理&#xff0c;更是一场充满技术创新的冒险。在本文中&#xff0c;我们将深入研究连锁餐饮系统的技术实现&#xff0c;带你探索未来餐饮业的数字化美食之旅。 1. 构建强大的后端服务 在设计连锁…

计算机网络-2021期末考试解析

【前言】 这个是计算机网络的正式试卷了。从形式上基本上跟今年考的一致。很具有参考性。 一、 简答题&#xff08;30 分&#xff0c;每题 5 分&#xff09; 1 、电路交换与分组交换各有什么优缺点&#xff1f;第 4 代蜂窝系统 -4G 采用的是全 IP 体系&#xff0c;这说明…

iPad Pro如何使用SSH远程连接服务器云端编程开发【内网穿透】

文章目录 1. 在iPad下载Code APP2.安装cpolar内网穿透2.1 cpolar 安装2.2 创建TCP隧道 3. iPad远程vscode4. 配置固定TCP端口地址4.1 保留固定TCP地址4.2 配置固定的TCP端口地址4.3 使用固定TCP地址远程vscode 正文开始前给大家推荐个网站&#xff0c;前些天发现了一个巨牛的 …

HubSpot能不能对接Facebook?

在数字化时代&#xff0c;企业如何更有效地整合关键平台&#xff0c;实现全面运营是业务发展的重要议题。今天将聚焦于探讨HubSpot与Facebook的整合可能性&#xff0c;通过强调MessageBox对接各大系统的能力&#xff0c;揭示这一整合如何解锁商业潜力。 HubSpot与Facebook的数字…

生成学习全景:从基础理论到GANs技术实战

本文全面探讨了生成学习的理论与实践&#xff0c;包括对生成学习与判别学习的比较、详细解析GANs、VAEs及自回归模型的工作原理与结构&#xff0c;并通过实战案例展示了GAN模型在PyTorch中的实现。 关注TechLead&#xff0c;分享AI全维度知识。作者拥有10年互联网服务架构、AI产…

低代码的应用场景

Gartner 在 2019 年的低代码调研报告中&#xff0c;曾经绘制过一张用来阐述低代码适用场景的“应用金字塔”&#xff0c;如下图所示&#xff1a; 应用级别划分&#xff1a;从下往上&#xff0c;分别为工作组级(Workgroup Class)、部门级(Departmental Class)、企业级(Enterpris…

MySQL:The last packet sent successfully to the server was 0 milliseconds ago.

出现异常”The last packet sent successfully to the server was 0 milliseconds ago.“的大部分原因是由于数据库回收了连接&#xff0c;而系统的缓冲池不知道&#xff0c;继续使用被回收的连接所致的 解决方法&#xff1a; &#xff08;1&#xff09;使用JDBC URL中使用au…

新书速览||数字空间驱动智能建造

聚焦建筑企业高涨的数字化需求&#xff0c;探讨数字化转型背景下的智能建造与数据要素工程化应用 本书内容 面对复杂的内外部环境与百年未有的大变局&#xff0c;个性化制造特征突出又规模巨大的中国建筑业&#xff0c;亟待充分利用数据资源这一生产要素&#xff0c;优化资源配…