Go でファイルの読み取り/書き込み/ファイルへの書き込み

Jay Singh 2023年1月30日
  1. Go で WriteString を使用してファイルに書き込む
  2. Go で io/ioutil を使用したファイルの読み取り/書き込み
Go でファイルの読み取り/書き込み/ファイルへの書き込み

データはファイルに保存できます。これにより、データに構造が与えられ、ストレージメディアに応じて、永続的または一時的に保持できます。

プログラムによるファイルの操作には、メタデータの取得、新しいファイルの作成、ファイル形式との間でのデータの読み取りとプログラムの内部データ構造への書き込みが含まれます。

Go の組み込みライブラリは、ファイルの作成、読み取り/書き込み、名前の変更、移動、コピー、メタデータ情報の収集など、ファイル関連のアクティビティを優れた方法でサポートします。

このチュートリアルでは、Go でファイルの読み取り/書き込みを行う方法を示します。

Go で WriteString を使用してファイルに書き込む

この例では、ファイル書き込みアクションには、ファイルへの文字列の書き込みが含まれます。これは簡単な手順です。

次のコードは、プログラムのディレクトリに file.txt という名前のファイルを生成します。次に、こんにちは、お元気ですか?というテキストが表示されます。テキストエディタで開いた後、ファイル内にあります。

以下のソースコードを見てみましょう。

package main

import (
    "fmt"
    "os"
)

func main() {
    f, err := os.Create("file.txt")
    if err != nil {
    fmt.Println(err)
        return
    }
    l, err := f.WriteString("Hello, How are you?")
    if err != nil {
        fmt.Println(err)
        f.Close()
        return
    }
    fmt.Println(l, "bytes written successfully")
    err = f.Close()
    if err != nil {
        fmt.Println(err)
        return
    }
}

出力:

19 bytes written successfully

Go で io/ioutil を使用したファイルの読み取り/書き込み

WriteString メソッドはファイルに書き込みますが、ReadFile 関数は以下のプログラムのテキストファイルからコンテンツを読み取ります。file.txt が存在しない場合、アプリケーションはそれを作成するか、存在する場合は切り捨てます。

package main

import (
    "fmt"
    "io/ioutil"
    "log"
    "os"
)

func CreateFile() {
    file, err := os.Create("file.txt")
    if err != nil {
        log.Fatalf("failed creating file: %s", err)
    }
    defer file.Close()

    len, err := file.WriteString("Hello, How are you?.")

    if err != nil {
        log.Fatalf("failed writing to file: %s", err)
    }
    fmt.Printf("\nLength: %d bytes", len)
    fmt.Printf("\nFile Name: %s", file.Name())
}

func ReadFile() {
    data, err := ioutil.ReadFile("file.txt")
    if err != nil {
        log.Panicf("failed reading data from file: %s", err)
    }
    fmt.Printf("\nLength: %d bytes", len(data))
    fmt.Printf("\nData: %s", data)
    fmt.Printf("\nError: %v", err)
}

func main() {
    fmt.Printf("//// Create a file and Write the content ////\n")
    CreateFile()

    fmt.Printf("\n\n //// Read file //// \n")
    ReadFile()
}

出力:

//// Create a file and Write the content ////

Length: 20 bytes
File Name: file.txt

 //// Read file ////

Length: 20 bytes
Data: Hello, How are you?.
Error: <nil>

関連記事 - Go File