Go でファイルの読み取り/書き込み/ファイルへの書き込み
Jay Singh
2023年1月30日
データはファイルに保存できます。これにより、データに構造が与えられ、ストレージメディアに応じて、永続的または一時的に保持できます。
プログラムによるファイルの操作には、メタデータの取得、新しいファイルの作成、ファイル形式との間でのデータの読み取りとプログラムの内部データ構造への書き込みが含まれます。
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>