We saw how easy it is to read from file in golang in my previous post here

In this post, we will see how to write to the file, we will again use bufio package.

First create file to we wish to write to (It points to file, if it exist already)

	fileHandle, _ := os.Create("file_name.txt")

You can pass relative(../file_name) or abosulte path(C:/folder_name/file_name) of file to Open method.

We will add a defer statement to close file, so that once our work is done file handle is closed, defer fileHandle.Close()

Now we need Writer for writing line, we can create it using bufio package as

	writer := bufio.NewWriter(fo)

Now simply write following line to write line to file -

	fmt.Fprintln(writer, "String I want to write")

And finally do not forget to flush writer as writer.Flush() The complete code is as below -

Note:- I am using “_” for error, and not handling the error, but should be done in your production code, read about error handling here

But if you have observed here, in case where file already exists, the file content are overwritten, so how to keep the original content and append text to file ?

To do that we will open file in append mode as

fileHandle, _ := os.OpenFile("output.txt", os.O_APPEND, 0666)

Read about OpenFile

And rest remains the same as earlier, complete code -

We can combine previous post code and this post code to read from file, apply some transformation if needed and then write/append to file.