package main import ( "bytes" "fmt" "io/ioutil" "log" "os" ) func main() { // readFile1() // readFile2() // readDir() // foo() foo2() } func readFile1() { var data []byte data, _ = ioutil.ReadFile("test_file.txt") fmt.Println(data) } func readFile2() { b := bytes.NewReader([]byte("Данные в объекте io.Reader")) data, _ := ioutil.ReadAll(b) fmt.Printf("%s\n", data) } func readDir() { dir, _ := os.ReadDir(".") for i, val := range dir { fmt.Println(i, val) } // fmt.Println(dir) } func writeFile1() { // func WriteFile(filename string, data []byte, perm os.FileMode) error } func foo() { dataForFile := []byte("Тестовая строка, предназначенная для записи в файл") // Создаем новый файл и записываем в него данные dataForFile if err := ioutil.WriteFile("test.txt", dataForFile, 0600); err != nil { fmt.Println("С записью в файл что-то пошло не по плану.") } // Читаем данные из того же файла dataFromFile, err := ioutil.ReadFile("test.txt") if err != nil { fmt.Println("С чтением из файла пошло что-то не так") } fmt.Printf("%s", dataFromFile) // Сравниваем исходные данные с записанными в файл и прочитанными из него fmt.Printf("dataForFile == dataFromFile: %v\n", bytes.Equal(dataFromFile, dataForFile)) // Изучаем содержимое директории filesFromDir, err := ioutil.ReadDir(".") if err != nil { fmt.Println("С чтением директории пошло что-то не так.") } for _, file := range filesFromDir { // Проходим по всем найденным файлам и печатаем их имя и размер fmt.Printf("name: %s, size: %d\n", file.Name(), file.Size()) } } func foo2() { dataForFile := []byte("Тестовая строка, предназначенная для записи в файл") file_name := "test_file.txt" // Создаем новый файл и записываем в него данные dataForFile if err := os.WriteFile(file_name, dataForFile, 0600); err != nil { log.Fatal(err) } // Читаем данные из файла dataFromFile, err := os.ReadFile(file_name) if err != nil { log.Fatal(err) } fmt.Printf("dataForFile == dataFromFile: %v\n", bytes.Equal(dataFromFile, dataForFile)) // Получаем текущую директорию currentDir, err := os.Getwd() if err != nil { log.Fatal(err) } fmt.Println(currentDir) // Изучаем содержимое директории filesFromDir, err := os.ReadDir(currentDir) if err != nil { log.Fatal(err) } for _, file := range filesFromDir { // Проходим по всем найденным файлам и печатаем их имя и размер info, _ := file.Info() fmt.Printf("|_name: %s, size: %d\n", file.Name(), info.Size()) } /* // Изучаем содержимое директории entries, err := os.ReadDir("./") if err != nil { fmt.Println("С чтением директории пошло что-то не так.") } for _, e := range entries { fmt.Println(e.Name()) } */ }