以只讀方式打開文件
package mainimport ("fmt""io""os"
)func main() {file, err := os.Open("./main.go")defer file.Close()if err != nil {fmt.Println(err)return}fmt.Println(file)var tempSlice = make([]byte, 128)var strSlice []bytefor {n, errr := file.Read(tempSlice)if errr == io.EOF {fmt.Println("讀取完成")break}if errr != nil {fmt.Println("失敗")}fmt.Println(n)strSlice = append(strSlice, tempSlice[:n]...)}fmt.Println(string(strSlice))
}
第二種
package mainimport ("bufio""fmt""io""os"
)func main() {file, err := os.Open("./main.go")defer file.Close()if err != nil {fmt.Println(err)return}reader := bufio.NewReader(file)var fileStr stringfor {str, err := reader.ReadString('\n')if err == io.EOF {fileStr += strbreak}if err != nil {fmt.Println(err)return}fileStr += str}fmt.Println(fileStr)
}
注意讀取結束后還可能會有殘留數據
第三種
package mainimport ("fmt""io/ioutil"
)func main() {file, err := ioutil.ReadFile("./main.go")if err != nil {fmt.Println(err)}fmt.Println(string(file))
}
第一種寫入的方法
package mainimport ("fmt""os"
)func main() {file, err := os.OpenFile("D:/test.txt", os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0666)defer file.Close()if err != nil {fmt.Println(err)return}for i := 0; i < 10; i++ {file.WriteString("w123\r\n")}file.Write([]byte("123123"))
}
package mainimport ("bufio""fmt""os"
)func main() {file, err := os.OpenFile("D:/test.txt", os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0666)defer file.Close()if err != nil {fmt.Println(err)return}writer := bufio.NewWriter(file)for i := 0; i < 10; i++ {writer.WriteString("你好")writer.Flush()}}
第三種
package mainimport ("fmt""io/ioutil"
)func main() {str := "hello"err := ioutil.WriteFile("D:/test.txt", []byte(str), 0666)if err != nil {fmt.Println(err)return}
}
可以通過ioutil包來復制文件,先讀,再寫,其他兩種方式也可以
創建目錄
err:=os.MkdirAll("./abc/a/b/c",0666)
刪除
err:=os.Remove("aaa.txt")
os.RemoveAll 刪除所有文件
os.Rename(xxx,yyy)重命名