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

 

posted on 2020-12-06 23:16  孤灯引路人  阅读(311)  评论(0编辑  收藏  举报

导航