io Package Utilities
io paketining yordamchi vositalari
io paketida io.Copydan tashqari yana foydali funksiyalar bor. io.ReadAll istalgan io.Readerdan (nafaqat faylдан) hamma ma'lumotni o'qib, []byte qilib beradi.
package main
import (
"fmt"
"io"
"os"
)
func main() {
os.WriteFile("readme.txt", []byte("Bu butun fayl mazmuni."), 0644)
f, err := os.Open("readme.txt")
if err != nil {
fmt.Println("xato:", err)
return
}
defer f.Close()
data, err := io.ReadAll(f)
if err != nil {
fmt.Println("xato:", err)
return
}
fmt.Println(string(data))
}io.ReadAll(f) va os.ReadFile(yo'l) bir xil natija beradi, lekin farqi shunda: os.ReadFile yo'l (string) qabul qiladi va faylni o'zi ochib-yopadi, io.ReadAll esa allaqachon ochilgan istalgan io.Readerni qabul qiladi — masalan tarmoq javobi yoki boshqa dastur chiqishi. Reader tugagach, u ichida maxsus io.EOF ("End Of File", fayl tugadi) signali ishlatiladi — lekin ReadAll buni siz uchun avtomatik boshqaradi.
>_ Exercise
Fayl mazmunini io.ReadAll bilan o'qing va uzunligini chiqaring.
- •story.txt ni os.Open bilan oching
- •io.ReadAll bilan mazmunini o'qing
- •mazmunni va uning uzunligini (len) chop eting
Stuck? Reveal a hint to help you.
Key Takeaway
Key Takeaway:
io.ReadAll — allaqachon ochilgan istalgan io.Readerdan hammasini o'qishning universal usuli.
NEXT UP
bytes.Buffer for Building Data
$ go run main.go
Kodingizni ishga tushiring