package main
import (
"bufio"
"fmt"
"io"
"os"
)
func readtxt(filename string){
file,err:=os.Open(filename)
if err!=nil {
fmt.Println(err)
}
defer file.Close()
//创建一个新的io.Reader,它实现了Read方法
reader:=bufio.NewReader(file)
//设置读取的长度
buf:=make([]byte,1024)
//读取文件
_,err=reader.Read(buf)
if err!=nil {
fmt.Println(err)
}
fmt.Println(string(buf))
}
//删除指定path下的所有文件
func RemoveAllFile(file_dir string) {
delDir := os.RemoveAll(file_dir);
if delDir != nil {
fmt.Println(delDir);
}
return
}
//删除文件
func RemoveFile(file_name string) {
err := os.Remove(file_name)
if err != nil {
// 删除失败
} else {
// 删除成功
}
return
}
//文件拷贝
func CopyFile(file_name1,file_name2 string) {
// 打开文件
fp1, err1 := os.OpenFile(file_name1, os.O_RDONLY, 6)
fp2, err2 := os.Create(file_name2)
if err1 != nil || err2 != nil {
fmt.Println("操作文件失败")
return
}
// 关闭文件
defer fp1.Close()
defer fp2.Close()
// 拷贝文件
buf := make([]byte, 1024*1024*8) // 8MB
for {
n, err := fp1.Read(buf)
if err == io.EOF {
break
}
fp2.Write(buf[:n])
}
}
//创建文件
func CreateFile(file_name string) {
// 创建文件
fp, err := os.Create(file_name) // 如果文件已存在,会将文件清空。
fmt.Println(fp, err) // &{0xc000076780} <nil>
fmt.Printf("%T", fp) // *os.File 文件指针类型
if err != nil {
fmt.Println("文件创建失败。")
//创建文件失败的原因有:
//1、路径不存在 2、权限不足 3、打开文件数量超过上限 4、磁盘空间不足等
return
}
// defer延迟调用
defer fp.Close() //关闭文件,释放资源。
}
//判断文件或文件夹是否存在
func isExist(path string)(bool){
_, err := os.Stat(path)
if err != nil{
if os.IsExist(err){
return true
}
if os.IsNotExist(err){
return false
}
fmt.Println(err)
return false
}
return true
}
// 追加内容到TXT文件
func WriteWithIoutil(data,filePath string) {
file, err := os.OpenFile(filePath, os.O_WRONLY|os.O_APPEND, 0666)
if err != nil {
fmt.Println("文件打开失败", err)
}
defer file.Close()
//写入文件时,使用带缓存的 *Writer
write := bufio.NewWriter(file)
write.WriteString(data+"\n")
//Flush将缓存的文件真正写入到文件中
write.Flush()
}
func main() {
if isExist("./123.txt"){
// fmt.Printf("%s is exist!", v)
}else{
CreateFile("123.txt")
//fmt.Printf("%s is not exist!", v)
}
WriteWithIoutil("asdfasdfafdasdf","123.txt")
//readtxt(filename string)
//RemoveFile(file_name string)
//CopyFile(file_name1,file_name2 string)
//RemoveAllFile("./123/")
}
如果文章或资源对您有帮助,欢迎打赏作者。一路走来,感谢有您!
txttool.com 说一段 esp56物联 查询128 IP查询