Skip to content

Instantly share code, notes, and snippets.

@rcholic
Created April 7, 2018 23:00
Show Gist options
  • Save rcholic/71f7dab1177a29aa9a84ca9b6be513c0 to your computer and use it in GitHub Desktop.
Save rcholic/71f7dab1177a29aa9a84ca9b6be513c0 to your computer and use it in GitHub Desktop.

Revisions

  1. @novalagung novalagung revised this gist Sep 15, 2015. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion golang-create-read-write-delete-file.go
    Original file line number Diff line number Diff line change
    @@ -54,7 +54,7 @@ func readFile() {
    var text = make([]byte, 1024)
    for {
    n, err := file.Read(text)
    if err != nil && err != io.EOF {
    if err != io.EOF {
    checkError(err)
    }
    if n == 0 {
  2. @novalagung novalagung revised this gist Sep 15, 2015. 1 changed file with 2 additions and 2 deletions.
    4 changes: 2 additions & 2 deletions golang-create-read-write-delete-file.go
    Original file line number Diff line number Diff line change
    @@ -28,12 +28,12 @@ func createFile() {
    }

    func writeFile() {
    // open file
    // open file using READ & WRITE permission
    var file, err = os.OpenFile(path, os.O_RDWR, 0644)
    checkError(err)
    defer file.Close()

    // write to file
    // write some text to file
    _, err = file.WriteString("halo\n")
    checkError(err)
    _, err = file.WriteString("mari belajar golang\n")
  3. @novalagung novalagung revised this gist Sep 15, 2015. No changes.
  4. @novalagung novalagung revised this gist Sep 15, 2015. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion golang-create-read-write-delete-file.go
    Original file line number Diff line number Diff line change
    @@ -36,7 +36,7 @@ func writeFile() {
    // write to file
    _, err = file.WriteString("halo\n")
    checkError(err)
    _, err = file.WriteString("mari belajar golang")
    _, err = file.WriteString("mari belajar golang\n")
    checkError(err)

    // save changes
  5. @novalagung novalagung created this gist Sep 15, 2015.
    79 changes: 79 additions & 0 deletions golang-create-read-write-delete-file.go
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,79 @@
    package main

    import (
    "fmt"
    "io"
    "os"
    )

    var path = "/Users/novalagung/Documents/temp/test.txt"

    func main() {
    createFile()
    writeFile()
    readFile()
    deleteFile()
    }

    func createFile() {
    // detect if file exists
    var _, err = os.Stat(path)

    // create file if not exists
    if os.IsNotExist(err) {
    var file, err = os.Create(path)
    checkError(err)
    defer file.Close()
    }
    }

    func writeFile() {
    // open file
    var file, err = os.OpenFile(path, os.O_RDWR, 0644)
    checkError(err)
    defer file.Close()

    // write to file
    _, err = file.WriteString("halo\n")
    checkError(err)
    _, err = file.WriteString("mari belajar golang")
    checkError(err)

    // save changes
    err = file.Sync()
    checkError(err)
    }

    func readFile() {
    // re-open file
    var file, err = os.OpenFile(path, os.O_RDWR, 0644)
    checkError(err)
    defer file.Close()

    // read file
    var text = make([]byte, 1024)
    for {
    n, err := file.Read(text)
    if err != nil && err != io.EOF {
    checkError(err)
    }
    if n == 0 {
    break
    }
    }
    fmt.Println(string(text))
    checkError(err)
    }

    func deleteFile() {
    // delete file
    var err = os.Remove(path)
    checkError(err)
    }

    func checkError(err error) {
    if err != nil {
    fmt.Println(err.Error())
    os.Exit(0)
    }
    }