Метод os.File.WriteString
Метод os.File.WriteString записывает содержимое строки в файл, связанный с указателем os.File. Он принимает один параметр — строку для записи. Метод возвращает количество записанных байт и ошибку, если она возникла. В отличие от метода os.File.Write, который принимает срез байт, WriteString работает напрямую со строкой, что удобнее при работе с текстовыми данными.
Синтаксис
n, err := file.WriteString(str)
Пример
Давайте откроем файл для записи и запишем в него строку "Hello, Go!":
package main
import (
"fmt"
"os"
)
func main() {
file, err := os.Create("example.txt")
if err != nil {
fmt.Println("Error creating file:", err)
return
}
defer file.Close()
n, err := file.WriteString("Hello, Go!")
if err != nil {
fmt.Println("Error writing to file:", err)
return
}
fmt.Printf("Written %d bytes\n", n)
}
Результат выполнения кода:
"Written 10 bytes"
Пример
Теперь запишем в файл несколько строк, используя символы переноса:
package main
import (
"fmt"
"os"
)
func main() {
file, err := os.Create("data.txt")
if err != nil {
fmt.Println("Error creating file:", err)
return
}
defer file.Close()
data := "Line 1\nLine 2\nLine 3\n"
n, err := file.WriteString(data)
if err != nil {
fmt.Println("Error writing to file:", err)
return
}
fmt.Printf("Written %d bytes\n", n)
}
Результат выполнения кода:
"Written 18 bytes"
Пример
Рассмотрим ситуацию, когда файл открыт в режиме только для чтения. Метод WriteString вернет ошибку:
package main
import (
"fmt"
"os"
)
func main() {
file, err := os.Open("existing.txt")
if err != nil {
fmt.Println("Error opening file:", err)
return
}
defer file.Close()
_, err = file.WriteString("New data")
if err != nil {
fmt.Println("Error:", err)
}
}
Результат выполнения кода:
"Error: write existing.txt: bad file descriptor"
Смотрите также
-
метод
os.File.Write,
который записывает срез байт в файл -
метод
os.File.Read,
который читает данные из файла в срез байт -
функцию
os.WriteFile,
которая записывает данные в файл одним вызовом -
метод
os.File.Close,
который закрывает открытый файл и освобождает ресурсы