[解決済み] テキストファイルを文字列配列に読み込む(そして書き込む)
2022-10-30 10:25:05
質問
テキストファイルを文字列配列に読み書きする機能は、かなり一般的な要件であると思います。それはまた、最初にデータベースにアクセスする必要性を排除して、言語を始めるときに非常に便利です。Golangにはあるのでしょうか?
e.g.
func ReadLines(sFileName string, iMinLines int) ([]string, bool) {
と
func WriteLines(saBuff[]string, sFilename string) (bool) {
重複するよりも、既存のものを使いたい。
どのように解決するのですか?
Go1.1 リリース時点では bufio.Scanner という API があり、ファイルから簡単に行を読み取ることができます。 上記の例をScannerで書き直した次のような例を考えてみましょう。
package main
import (
"bufio"
"fmt"
"log"
"os"
)
// readLines reads a whole file into memory
// and returns a slice of its lines.
func readLines(path string) ([]string, error) {
file, err := os.Open(path)
if err != nil {
return nil, err
}
defer file.Close()
var lines []string
scanner := bufio.NewScanner(file)
for scanner.Scan() {
lines = append(lines, scanner.Text())
}
return lines, scanner.Err()
}
// writeLines writes the lines to the given file.
func writeLines(lines []string, path string) error {
file, err := os.Create(path)
if err != nil {
return err
}
defer file.Close()
w := bufio.NewWriter(file)
for _, line := range lines {
fmt.Fprintln(w, line)
}
return w.Flush()
}
func main() {
lines, err := readLines("foo.in.txt")
if err != nil {
log.Fatalf("readLines: %s", err)
}
for i, line := range lines {
fmt.Println(i, line)
}
if err := writeLines(lines, "foo.out.txt"); err != nil {
log.Fatalf("writeLines: %s", err)
}
}
関連
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Go でファイルを一行ずつ読む
-
[解決済み] time.Sleepを使わずにすべてのゴルーチンが終了するのを待つには?
-
[解決済み] response.Bodyを閉じないとどうなりますか?
-
[解決済み] GoのToString()関数
-
[解決済み] Goプログラムで静的リソースをバンドルする最良の方法は何ですか?
-
[解決済み] golangでは、マップから値のスライスを取得する良い方法はありますか?
-
[解決済み] 現在時刻に時・分・秒を足す
-
[解決済み] ゴルーチンのスタックトレースをダンプするには?
-
[解決済み] sync.WaitGroupの例は正しいですか?
-
[解決済み] テンプレートでマップを繰り返し処理する