Ruby для новичков: чтение и запись файлов

Работа с файлами — важная часть программирования. Этот урок посвящен чтению и записи данных в файлы с использованием 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 и его методы, вы можете легко читать и записывать данные в файлы. Помните о закрытии файлов после работы с ними.

Что будем искать? Например,программа