Išplėstinės įvesties/išvesties operacijos programoje Go apima:
1. Buferinis įvestis/išvestis su „bufio“ paketu:
- Buferiniai skaitytuvai: naudokite „bufio.NewReader“, kad sukurtumėte buferinį skaitytuvą, galintį efektyviai tvarkyti didelius duomenų kiekius.- Buferiniai rašytuvai: naudokite „bufio.NewWriter“, kad sukurtumėte buferinį įrašymo įrenginį, galintį efektyviai tvarkyti didelius duomenų kiekius.
2. Tee Readers:
- TeeReader: naudokite „io.TeeReader“, kad padalintumėte įvesties duomenis į du srautus. Tai naudinga, kai duomenis reikia apdoroti dviem skirtingais būdais.3. Vamzdynų duomenys:
- Vamzdis: naudokite „io.Pipe“, kad sukurtumėte sinchroninį atminties vamzdį, kurį galima naudoti norint sujungti kodą, laukiantį „io.Reader“ su kodu, kuriame laukiama „io.Writer“.4. Failų skaitymas ir rašymas:
- Skaitymas iš failų: naudokite „os.Open“, kad atidarytumėte failą tik skaitymo režimu, tada naudokite „bufio.NewReader“, kad sukurtumėte skaitytuvą.- Rašymas į failus: naudokite „os.Create“ arba „os.OpenFile“, kad sukurtumėte arba atidarytumėte failą rašymo režimu, tada naudokite „bufio.NewWriter“, kad sukurtumėte rašiklį.
5. Suderinamumo tvarkymas:
- Saugus failų tvarkymas: naudokite „atidėti“, kad įsitikintumėte, jog failų rankenos yra tinkamai uždarytos, kad išvengtumėte išteklių nutekėjimo.6. Naudojant „io.Copy“:
– Duomenų kopijavimas: naudokite „io.Copy“, kad nukopijuotumėte duomenis iš vieno skaitytuvo į kitą rašytuvą.7. Naudojant `io.CopyN`:
- Duomenų kopijavimas su apribojimu: naudokite „io.CopyN“, kad nukopijuotumėte ribotą duomenų kiekį iš vieno skaitytuvo į kitą rašytuvą.8. Naudojant `io.ReadAtLeast`:
- Bent tam tikro kiekio nuskaitymas: naudokite „io.ReadAtLeast“, kad nuskaitytumėte bent tam tikrą duomenų kiekį iš skaitytuvo.9. Naudojant `io.ReadFull`:
- Viso kiekio skaitymas: naudokite „io.ReadFull“, kad nuskaitytumėte visą skaitytuvo duomenų kiekį.10. „io.WriteString“ naudojimas:
- Eilutės rašymas: naudokite „io.WriteString“, kad įrašytumėte eilutę rašytojui.11. „io.WriteString“ naudojimas su buferiu:
- Eilutės rašymas naudojant buferį: naudokite „io.WriteString“ su buferiu, norėdami efektyviai įrašyti eilutę į rašytoją.12. „io.MultiReader“ naudojimas:
- Skaitymas iš kelių šaltinių: naudokite „io.MultiReader“, kad skaitytumėte iš kelių šaltinių.13. „io.MultiWriter“ naudojimas:
- Rašymas į kelias paskirties vietas: naudokite „io.MultiWriter“, jei norite rašyti į kelias paskirties vietas.14. „io.PipeLine“ naudojimas:
- Kurti kanalą: naudokite „io.PipeLine“, kad sukurtumėte skaitytojų ir rašytojų konvejerį.15. „io.ReadFull“ naudojimas su buferiu:
- Visos sumos nuskaitymas naudojant buferį: naudokite „io.ReadFull“ su buferiu, kad efektyviai nuskaitytumėte visą skaitytuvo duomenų kiekį.Šios pažangios „Go“ įvesties / išvesties operacijos suteikia daugiau lankstumo ir duomenų skaitymo bei rašymo valdymo, todėl lengviau efektyviai atlikti sudėtingas įvesties / išvesties užduotis.
Citatos:[1] https://www.developer.com/languages/input-output-golang/
[2] https://www.educative.io/courses/advanced-techniques-in-go-programming/file-i-o
[3] https://www.codingexplorations.com/blog/mastering-io-readers-writers-go
[4] https://dev.to/romulogatto/file-io-in-go-488d
[5] https://hyperskill.org/learn/step/14527