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