go文件操作

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('
');//使用换行符
        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
";
//    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('
');
        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);
}