技术标签: golang
package main
import (
"bufio"
"fmt"
"io"
"io/ioutil"
"os"
)
// 一次性写入所有文件
func writeAllFile() {
// 要写入的文件地址和名称 index.html
filePath := "/test/file/write/index.html"
// 要写入的文件内容
content := "测试写入文件内容"
// 这种方式写入文件,如果文件不存在则创建该文件
// 如果文件已存在,则进行覆盖写入
err := os.WriteFile(filePath, []byte(content), 0666)
if err != nil {
fmt.Printf("write file err, %v", err)
}
fmt.Println("write file success")
}
// 用带有缓存方式进行写入文件内容
// 创建文件,并写入
func createFileBuf() {
filePath := "/test/file/write/create.html"
// os.O_WRONLY write-only
// os.O_CREATE 如果文件不存在则创建
file, err := os.OpenFile(filePath, os.O_WRONLY|os.O_CREATE, 0666)
if err != nil {
fmt.Printf("OpenFile() file err, %v", err)
}
// 关闭文件句柄
defer file.Close()
// 创建一个writer
writer := bufio.NewWriter(file)
content := "测试create.html写入文件\n"
_, err = writer.WriteString(content)
if err != nil {
fmt.Printf("write file err, %v", err)
}
// 最后真正写入文件
writer.Flush()
fmt.Println("write file success")
}
// 追加写入文件内容
func appendFileBuf() {
filePath := "/test/file/write/create.html"
// os.APPEND 追加写入文件内容
file, err := os.OpenFile(filePath, os.O_WRONLY|os.O_CREATE|os.O_APPEND, 0666)
if err != nil {
fmt.Printf("OpenFile() file err, %v", err)
}
// 关闭文件句柄
defer file.Close()
// 创建 writer
writer := bufio.NewWriter(file)
// 写入的文件内容
content := "追加文件测试内容\n"
_, err = writer.WriteString(content)
if err != nil {
fmt.Printf("append file err, %v", err)
}
writer.Flush()
fmt.Println("append file success")
}
// 拷贝图片文件
func copyPic() bool {
// 源文件
srcFilePath := "/test/file/write/cover.jpg"
// 拷贝后生成的文件
dstFilePath := "/test/file/write/copy.jpg"
// 打开源文件
srcFile, err := os.Open(srcFilePath)
if err != nil {
fmt.Printf("open src file err, %v", err)
return false
}
// 关闭源文件句柄
defer srcFile.Close()
// 获取源文件的 reader
reader := bufio.NewReader(srcFile)
// 创建目标文件
dstFile, err := os.OpenFile(dstFilePath, os.O_WRONLY|os.O_CREATE, 0666)
if err != nil {
fmt.Printf("open dst file err, %v", err)
return false
}
// 关闭目标文件句柄
defer dstFile.Close()
// 获取 writer
writer := bufio.NewWriter(dstFile)
// 进行文件拷贝
_, err = io.Copy(writer, reader)
if err != nil {
fmt.Printf("copy file err, %v", err)
return false
}
fmt.Println("copy file success")
return true
}
// 使用 io/ioutil 包写入文件
func writeIoUtil() {
// 写入的文件地址
filePath := "/test/file/write/ioutil.html"
// 写入的文件内容
content := "测试写入文件,使用io/ioutil包进行文件的写入操作"
err := ioutil.WriteFile(filePath, []byte(content), 0666)
if err != nil {
fmt.Printf("write file err, %v\n", err)
}
fmt.Println("write file success")
}
// 文件的写操作
func main() {
// 一次性写入全部文件
writeAllFile()
// 创建文件并写入,以缓存方式
createFileBuf()
// 追加写入文件
appendFileBuf()
// 拷贝图片
copyPic()
// 使用 io/ioutil 进行文件写入
writeIoUtil()
}
文章浏览阅读63次。书接上回 实例教程(一)本文将详细描述使用scrapy爬去左岸读书所有文章并存入本地MySql数据库中,文中所有操作都是建立在scrapy已经配置完毕,并且系统中已经安装了Mysql数据库(有权限操作数据库)。为了避免读者混淆,这里也使用tutorial作为scrapy project名称(工程的名字可以有读者自己定制)。1. 建立tutorial工程1 scrapy star...
文章浏览阅读1.7k次。NoSuchBeanDefinitionException,报错了,剑客立即马不停蹄的去百度度娘,发现这个问题是没有找到bean类,此时,立即去bean类查看,发现没有问题,而且代码在别人的电脑上也能跑通,此时就立马着手是配置的问题,没有找到是没有扫描的问题。@SpringBootApplication//@EnableScheduling //开启定时器//@..._加了mapperscan nosuchbeandefinitionexception
文章浏览阅读2.4k次。js截取方式1、区别汉字和英文 //字符串截取function CutString(name, maxLength) { if (!maxLength) { maxLength = 20; } if (name == null || name.length < 1) { return ""; } va_js 把字符串中的链接换成图片
文章浏览阅读457次。关注、星标公众号,不错过精彩内容编辑:Tony来源:公众号TonyCode随着科技的发展,人机交互也发生了翻天覆地的变化,从最开始的手动控制,到后来的遥控,再到语音识别以及图像识别。一切都是为了解放人类,毕竟能吵吵就不会动手对不对,现在都懒得吵吵了,图像识别分析就好。本篇我们来介绍高大尚的手势识别,用手比划就能进行控制了。 1 APDS-9960模块介绍APDS-9960是一个体积非常小..._oled引脚定义arduino代码
文章浏览阅读1.5w次,点赞2次,收藏10次。连接被服务器关闭原因:客户端授权没验证通过或被踢出_websocket 1006
文章浏览阅读276次。实时数仓第2天讲义学习目标能够掌握Canal高可用环境搭建能够编写Flink程序解析Kafka中的ProtoBuf能够搭建flink实时ETL项目开发环境能够针对etl的业务处理进行封装公共接口Canal HA模式配置服务器端HA模式配置canal是支持HA的,其实现机制也是依赖zookeeper来实现的,用到的特性有watcher和EPHEMERAL节点(和session生命周期绑定),与HDFS的HA类似。canal的ha分为两部分,canal server和canal clien_hbase-shaded-server
文章浏览阅读2.3k次。Linux ARM 安装 Java_arm jdk1.8
文章浏览阅读2.9k次。void Pwm_Init(unsigned long Frequency, float DC1, float DC2, float DC3, float DC4){ TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; TIM_OCInitTypeDef TIM_OCInitStructure; uint16_t TimerPerio_stm32f407pwm输入
文章浏览阅读2.5k次。在Caffe中调用TensorRT提供的MNIST model_"#include \"mnist_model.hpp"
文章浏览阅读4.3k次。Angular页面传参有多种办法,根据不同用例,我举5种最常见的:1. 基于ui-router的页面跳转传参(1) 在AngularJS的app.js中用ui-router定义路由,比如现在有两个页面,一个页面(producers.html)放置了多个producers,点击其中一个目标,页面跳转到对应的producer页,同时将producerId这个参数传过去。.state('producer..._angular跳转页面
文章浏览阅读352次。2019独角兽企业重金招聘Python工程师标准>>> ..._php.ini详解
文章浏览阅读2.4k次。以问答的形式记录openGl 知识点_opengl入门