在此程序同目錄下建立log.txt文件,以檢測。函數
package main import ( "os" "fmt" ) func main() { if _, err := os.Stat("log.txt"); err == nil { fmt.Println("Log.txt file exists") } }
package main import ( "os" "fmt" ) func main() { // IsNotExist函數定義:func IsNotExist(err error) bool // 返回一個布爾值說明該錯誤是否表示一個文件或目錄不存在 if _, err := os.Stat("log.txt"); os.IsNotExist(err) { fmt.Println("Log.txt file does not exist") } else { fmt.Println("Log.txt file exists") } }
在此程序同目錄下建立name.txt文件,以檢測。指針
package main import ( "io/ioutil" "fmt" ) func main() { contentBytes, err := ioutil.ReadFile("name.txt") if err == nil { // ReadFile返回[]byte fmt.Println(string(contentBytes)) } }
在此程序同目錄下建立hello_world文件。code
package main import ( "io/ioutil" "fmt" ) func main() { hello := "Hello, World" // WriteFile接受三個參數,要寫入的文件名,寫入的[]byte,以及寫入權限 err := ioutil.WriteFile("hello_world", []byte(hello), 0644) if err != nil { fmt.Println(err) } }
package main import ( "io/ioutil" "fmt" ) func main() { helloWorld := "Hello, World" // TempFile定義:func TempFile(dir, prefix string) (f *os.File, err error) // 在dir目錄下建立一個新的、使用prefix爲前綴的臨時文件, // 以讀寫模式打開該文件並返回os.File指針。 file, err := ioutil.TempFile("", "hello_world_temp") if err != nil { panic(err) } // defer os.Remove(file.Name()) if _, err := file.Write([]byte(helloWorld)); err != nil { panic(err) } fmt.Println(file.Name()) }
在程序同目錄下建立"names.txt"文件,隨便寫幾行字。string
package main import ( "os" "bufio" "fmt" ) func main() { file, _ := os.Open("names.txt") fileScanner := bufio.NewScanner(file) lineCount := 0 for fileScanner.Scan() { lineCount++ } defer file.Close() fmt.Println(lineCount) }
package main import ( "os" "bufio" "fmt" ) func main() { fmt.Println(readLine(2)) } func readLine(lineNumber int) string { file, _ := os.Open("names.txt") fileScanner := bufio.NewScanner(file) lineCount := 0 for fileScanner.Scan() { if lineCount == lineNumber { return fileScanner.Text() } lineCount++ } defer file.Close() return "" }
package main import ( "fmt" "io/ioutil" "bytes" ) func main() { one, err := ioutil.ReadFile("one.txt") if err != nil { panic(err) } two, err2 := ioutil.ReadFile("two.txt") if err2 != nil { panic(err2) } // Equal返回bool值 same := bytes.Equal(one, two) fmt.Println(same) }
package main import "os" func main() { err := os.Remove("new.txt") if err != nil { panic(err) } }
package main import ( "os" "io" ) func main() { original, err := os.Open("original.txt") if err != nil { panic(err) } defer original.Close() original_copy, err2 := os.Create("copy.txt") if err2 != nil { panic(err2) } defer original_copy.Close() // Copy(1, 2) -> 把2拷貝到1 _, err3 := io.Copy(original_copy, original) if err3 != nil { panic(err3) } } // 移動文件:拷貝以後利用os.Remove()刪除原文件
package main import "os" func main() { os.Rename("old.txt", "new.txt") }
package main import ( "os" "fmt" ) func main() { // Remove沒法刪除非空文件夾,RemoveAll能夠 err := os.RemoveAll("hello") if err != nil { panic(err) } }
建立一個hello文件夾,在文件夾內建立兩個文件,main文件和hello文件夾並列。it
. ├── hello │ ├── 1.txt │ └── 2.txt └── main.go
package main import ( "io/ioutil" "fmt" ) func main() { files, err := ioutil.ReadDir("hello") if err != nil { panic(err) } for _, f := range files { fmt.Println(f.Name()) } }