Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
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)
if isError(err) { return }
defer file.Close()
}
fmt.Println("==> done creating file", path)
}
func writeFile() {
// open file using READ & WRITE permission
var file, err = os.OpenFile(path, os.O_RDWR, 0644)
if isError(err) { return }
defer file.Close()
// write some text line-by-line to file
_, err = file.WriteString("halo\n")
if isError(err) { return }
_, err = file.WriteString("mari belajar golang\n")
if isError(err) { return }
// save changes
err = file.Sync()
if isError(err) { return }
fmt.Println("==> done writing to file")
}
func readFile() {
// re-open file
var file, err = os.OpenFile(path, os.O_RDWR, 0644)
if isError(err) { return }
defer file.Close()
// read file, line by line
var text = make([]byte, 1024)
for {
_, err = file.Read(text)
// break if finally arrived at end of file
if err == io.EOF {
break
}
// break if error occured
if err != nil && err != io.EOF {
isError(err)
break
}
}
fmt.Println("==> done reading from file")
fmt.Println(string(text))
}
func deleteFile() {
// delete file
var err = os.Remove(path)
if isError(err) { return }
fmt.Println("==> done deleting file")
}
func isError(err error) bool {
if err != nil {
fmt.Println(err.Error())
}
return (err != nil)
}
@kwkrisna2
Copy link

kwkrisna2 commented Jul 9, 2018

Suwun cak noval

@alexrios
Copy link

alexrios commented Aug 29, 2018

Thanks mate!

@dana321
Copy link

dana321 commented Dec 5, 2018

Did you know that you can also use the ioutil functions?

import "io/ioutil"

// read file
bytes,err:= ioutil.ReadFile(filename)
if err!=nil{
panic(err)
}
mystringdata:=string(bytes[:])

//write file
err:=ioutil.WriteFile("myfile.txt",[]byte("write this to file"),0644)
if err!=nil{
panic(err)
}

@webninjastar
Copy link

webninjastar commented Apr 5, 2019

I think it has an issue in createFile() function. Because I tested the code without test.txt file in the path but there isn't "test.txt" file after running the code.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment