Работа с файлами — важная часть программирования. Этот урок посвящен чтению и записи данных в файлы с использованием Ruby. Файлы могут храниться на вашем компьютере или на сервере. В этом примере мы будем работать с файлами, расположенными в той же папке, что и Ruby-скрипт.
Подготовка
Создайте директорию text и в ней текстовый файл sample.txt. Добавьте в него следующий текст:
Это просто текст про BMW, ну типа про компанию BMW.
Чтение файлов
Для работы с файлами в Ruby используется класс File. Метод open открывает файл в указанном режиме. Пример чтения файла:
file = File.open('text/sample.txt', 'r') # Открытие файла в режиме чтения ('r')
puts file.read # Чтение и вывод всего файла в консоль
file.close # Закрытие файла
- File.open(‘text/sample.txt’, ‘r’) открывает файл sample.txt в режиме чтения (‘r’). Результат присваивается переменной file.
- file.read читает содержимое файла и возвращает его как строку. puts выводит строку в консоль.
- file.close закрывает файл. Важно всегда закрывать файлы после работы с ними.
Результат выполнения кода:
Это просто текст про BMW, ну типа про компанию BMW.
Полученная строка позволяет использовать строковые операции Ruby, например:
- file.read.include?("BMW") (проверка на наличие подстроки)
- file.read.upcase (преобразование в верхний регистр)
- file.read.downcase (преобразование в нижний регистр)
Построчное и посимвольное чтение
Кроме read, существуют методы для построчного и посимвольного чтения:
- file.readline — читает одну строку.
- file.readlines — читает все строки и возвращает массив строк.
- file.readchar — читает один символ.
Пример построчного чтения:
file = File.open('text/sample.txt', 'r')
puts file.readline # Вывод первой строки
puts file.readline # Вывод второй строки
file.close
Пример с использованием цикла:
file = File.open('text/sample.txt', 'r')
file.each_line do |line|
puts line
end
file.close
Запись в файлы
Для записи используются методы append и write.
- append добавляет данные в конец файла.
- write перезаписывает файл.
Пример использования append:
file = File.open('text/sample.txt', 'a') # Открытие файла в режиме добавления ('a')
file.puts "Это новая строка." # Добавление новой строки
file.close
Пример использования write:
file = File.open('text/index.html', 'w') # Создание и перезапись файла ('w')
file.write "<h1>Привет</h1>"
file.close
Этот пример создает новый файл index.html с содержимым «<h1>Привет</h1>». Если файл index.html существует, его содержимое будет перезаписано.
В Ruby работа с файлами проста и интуитивно понятна. Используя класс File и его методы, вы можете легко читать и записывать данные в файлы. Помните о закрытии файлов после работы с ними.