file1.go 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. package main
  2. import (
  3. "bytes"
  4. "fmt"
  5. "io/ioutil"
  6. "log"
  7. "os"
  8. )
  9. func main() {
  10. // readFile1()
  11. // readFile2()
  12. // readDir()
  13. // foo()
  14. foo2()
  15. }
  16. func readFile1() {
  17. var data []byte
  18. data, _ = ioutil.ReadFile("test_file.txt")
  19. fmt.Println(data)
  20. }
  21. func readFile2() {
  22. b := bytes.NewReader([]byte("Данные в объекте io.Reader"))
  23. data, _ := ioutil.ReadAll(b)
  24. fmt.Printf("%s\n", data)
  25. }
  26. func readDir() {
  27. dir, _ := os.ReadDir(".")
  28. for i, val := range dir {
  29. fmt.Println(i, val)
  30. }
  31. // fmt.Println(dir)
  32. }
  33. func writeFile1() {
  34. // func WriteFile(filename string, data []byte, perm os.FileMode) error
  35. }
  36. func foo() {
  37. dataForFile := []byte("Тестовая строка, предназначенная для записи в файл")
  38. // Создаем новый файл и записываем в него данные dataForFile
  39. if err := ioutil.WriteFile("test.txt", dataForFile, 0600); err != nil {
  40. fmt.Println("С записью в файл что-то пошло не по плану.")
  41. }
  42. // Читаем данные из того же файла
  43. dataFromFile, err := ioutil.ReadFile("test.txt")
  44. if err != nil {
  45. fmt.Println("С чтением из файла пошло что-то не так")
  46. }
  47. fmt.Printf("%s", dataFromFile)
  48. // Сравниваем исходные данные с записанными в файл и прочитанными из него
  49. fmt.Printf("dataForFile == dataFromFile: %v\n", bytes.Equal(dataFromFile, dataForFile))
  50. // Изучаем содержимое директории
  51. filesFromDir, err := ioutil.ReadDir(".")
  52. if err != nil {
  53. fmt.Println("С чтением директории пошло что-то не так.")
  54. }
  55. for _, file := range filesFromDir {
  56. // Проходим по всем найденным файлам и печатаем их имя и размер
  57. fmt.Printf("name: %s, size: %d\n", file.Name(), file.Size())
  58. }
  59. }
  60. func foo2() {
  61. dataForFile := []byte("Тестовая строка, предназначенная для записи в файл")
  62. file_name := "test_file.txt"
  63. // Создаем новый файл и записываем в него данные dataForFile
  64. if err := os.WriteFile(file_name, dataForFile, 0600); err != nil {
  65. log.Fatal(err)
  66. }
  67. // Читаем данные из файла
  68. dataFromFile, err := os.ReadFile(file_name)
  69. if err != nil {
  70. log.Fatal(err)
  71. }
  72. fmt.Printf("dataForFile == dataFromFile: %v\n", bytes.Equal(dataFromFile, dataForFile))
  73. // Получаем текущую директорию
  74. currentDir, err := os.Getwd()
  75. if err != nil {
  76. log.Fatal(err)
  77. }
  78. fmt.Println(currentDir)
  79. // Изучаем содержимое директории
  80. filesFromDir, err := os.ReadDir(currentDir)
  81. if err != nil {
  82. log.Fatal(err)
  83. }
  84. for _, file := range filesFromDir {
  85. // Проходим по всем найденным файлам и печатаем их имя и размер
  86. info, _ := file.Info()
  87. fmt.Printf("|_name: %s, size: %d\n", file.Name(), info.Size())
  88. }
  89. /*
  90. // Изучаем содержимое директории
  91. entries, err := os.ReadDir("./")
  92. if err != nil {
  93. fmt.Println("С чтением директории пошло что-то не так.")
  94. }
  95. for _, e := range entries {
  96. fmt.Println(e.Name())
  97. }
  98. */
  99. }