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) } }