Files
advent-of-code-2025/internal/file/file.go
T

59 lines
863 B
Go
Raw Normal View History

2025-12-01 06:49:26 -06:00
// Package file provides useful methods for interacting with files
package file
import (
"bufio"
"iter"
2025-12-01 06:49:26 -06:00
"os"
)
func ReadLines(filePath string) iter.Seq[string] {
return func(yield func(string) bool) {
file, err := os.Open(filePath)
2025-12-05 07:05:28 -06:00
if err != nil {
yield("")
return
}
defer file.Close()
scanner := bufio.NewScanner(file)
for scanner.Scan() {
if !yield(scanner.Text()) {
return
}
}
}
}
func ReadAllLines(filePath string) []string {
2025-12-01 06:49:26 -06:00
lines := []string{}
file, openErr := os.Open(filePath)
if openErr != nil {
return lines
}
scanner := bufio.NewScanner(file)
for scanner.Scan() {
2025-12-01 06:49:26 -06:00
line := scanner.Text()
lines = append(lines, line)
}
return lines
}
func ReadAllText(filePath string) string {
fileContent, readErr := os.ReadFile(filePath)
if readErr != nil {
return ""
}
return string(fileContent)
}