go文件操作
1.go文件操作
package main import ( "bufio" "fmt" "io" "io/ioutil" "os" ) //一次一次读取文件 func main(){ fileName:="test.txt"; file,_:=os.Open(fileName);//打开一个文件 reader:=bufio.NewReader(file);//使用bufio读取一个文件 for {//循环读取 str,error:=reader.ReadString('\n');//使用换行符 if error == io.EOF { break; } fmt.Print(str); } fmt.Println("file read end"); } //一次性读取文件 func main(){ content,_:= ioutil.ReadFile("test.txt"); fmt.Print(string(content)); }
2.文件操作题
package main import ( "bufio" "fmt" "io" "os" ) //写入数据=数据是字符串 //func main() { // file,_:=os.OpenFile("1.txt",os.O_RDWR | os.O_APPEND|os. O_CREATE,066); // str:="this is test\n"; // file.WriteString(str); // defer file.Close(); //} //使用缓存写文件 //func main(){ // str:="111111111111111"; // file,_:=os.OpenFile("1.txt",os.O_RDWR|os.O_APPEND|os. O_CREATE,066); // write:=bufio.NewWriter(file); // write.WriteString(str); // write.Flush(); // defer file.Close(); //} //文件已经存在,清空后创建 //func main(){ // file,_:=os.OpenFile("1.txt",os.O_WRONLY|os.O_TRUNC,0666); // str:="2222"; // write:=bufio.NewWriter(file); // write.WriteString(str); // write.Flush(); //} //文件已存在,追加 //func main(){ // file,_:=os.OpenFile("1.txt",os.O_WRONLY|os.O_APPEND,0666); // str:="11111111"; // write:=bufio.NewWriter(file); // write.WriteString(str); // write.Flush(); //} //将文件显示在终端,然后追加 func main(){ file,_:= os.OpenFile("1.txt",os.O_RDWR|os.O_APPEND,0666); read:=bufio.NewReader(file); for { str,err:= read.ReadString('\n'); if err == io.EOF { break; } fmt.Print(str); } newStr:="aaaaaaaaaaaaaaaaa"; write:=bufio.NewWriter(file); write.WriteString(newStr); write.Flush(); }
3.将一个文件内容复制到另外一个文件内容下
package main //将一个文件里面内容导入另外一个文件里面去 //func main(){ // filePath:="1.txt"; // filePath2:="2.txt"; // data,err:=ioutil.ReadFile(filePath); // if err != nil { // fmt.Println("file error"); // } // ioutil.WriteFile(filePath2,data,0666); //}
4.复制图片内容
package main import ( "bufio" "fmt" "io" "os" ) //复制图片内容 func main(){ sourceFile,err:=os.Open("1.jpg"); if err != nil { fmt.Println("open file is error"); } reader:= bufio.NewReader(sourceFile); dstFile,error:=os.OpenFile("2.jpg",os.O_CREATE|os.O_RDWR,0666); if error != nil { fmt.Println("open file erorr"); } writer:=bufio.NewWriter(dstFile); io.Copy(writer,reader); }
5.将数据转化为json存储文件
type Persion struct { Name string Age int } func main(){ var persionLice [] Persion p1:=Persion{Name:"lisi",Age:20} p2:=Persion{Name:"zhangsan",Age:22} p3:=Persion{Name:"zhaoliu",Age:24} persionLice = append(persionLice,p1) persionLice = append(persionLice,p2) persionLice = append(persionLice,p3) strbytes,_:= json.Marshal(persionLice) //数据转化为[]bytes()类型 ioutil.WriteFile("./demo.txt",strbytes,0666) }
6.将内容读取出来
func main(){ var persionLice []Persion //存储固定数据容器 content,_:=ioutil.ReadFile("./demo.txt") json.Unmarshal(content,&persionLice) for _,val:=range persionLice { fmt.Println(val.Name) fmt.Println(val.Age) } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构