Go 言語を使用してファイルの内容を削除するには 2 つの方法があります。すべての内容を削除するには、ioutil.WriteFile 関数を使用します。 bufio.Scanner を使用してファイルを反復処理し、特定の行をフィルタリングして書き換えます。
Go 言語を使用したファイル コンテンツの削除
ファイル コンテンツの削除は、ログ ファイルやハンドルのクリーニングなど、さまざまなシナリオで非常に役立ちます。一時的なデータ。この記事では、Go 言語を使用してファイルコンテンツの削除機能を実装する方法を説明します。
ファイルの内容全体を削除します
ファイルの内容をすべて削除するには、ioutil.WriteFile
関数を使用して、その内容を空の文字列に変換します。
package main import ( "io/ioutil" "fmt" ) func main() { err := ioutil.WriteFile("file.txt", []byte(""), 0644) if err != nil { fmt.Println(err) } }
ファイル内の特定の行を削除します
ファイル内の特定の行を削除するには、Scanner## を使用します。
bufio パッケージの # タイプ:
package main import ( "os" "bufio" "fmt" ) func main() { file, err := os.OpenFile("file.txt", os.O_RDWR, 0644) if err != nil { fmt.Println(err) return } lines := []string{} scanner := bufio.NewScanner(file) for scanner.Scan() { if scanner.Text() != "Line to be deleted" { lines = append(lines, scanner.Text()) } } file.Truncate(0) file.Seek(0, 0) for _, line := range lines { _, err = file.WriteString(line + "\n") if err != nil { fmt.Println(err) } } }
実用的なケース
次の内容を含むログ ファイルがあるとします:[INFO] Starting the application [ERROR] An error occurred [INFO] Application terminated
package main import ( "os" "bufio" "fmt" ) func main() { file, err := os.OpenFile("logfile.txt", os.O_RDWR, 0644) if err != nil { fmt.Println(err) return } lines := []string{} scanner := bufio.NewScanner(file) for scanner.Scan() { if !strings.Contains(scanner.Text(), "[ERROR]") { lines = append(lines, scanner.Text()) } } file.Truncate(0) file.Seek(0, 0) for _, line := range lines { _, err = file.WriteString(line + "\n") if err != nil { fmt.Println(err) } } }
以上がGo言語を使用してファイルの内容を削除する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。