Ruby:
Создание временного файла
Как это сделать:
Стандартная библиотека Ruby предоставляет Tempfile
для создания временных файлов. Давайте разберемся:
require 'tempfile'
Tempfile.create('my_temp') do |tempfile|
tempfile.write('Временное содержимое')
puts "Временный файл находится по адресу: #{tempfile.path}"
end
# После выполнения блока файл автоматически удаляется.
Как только вы это запустите, увидите:
Временный файл находится по адресу: /tmp/my_temp20180418-56789-1234567
Этот файл не будет существовать дольше, чем нужно. Как только блок выполнится, Ruby очистит за вами.
Глубже
Класс Tempfile
существует начиная с Ruby 1.8, совершенствуется и оттачивается со временем. Под капотом он использует путь к временным файлам вашей системы, предоставляемый операционной системой.
Альтернативы? Конечно, вы могли бы вручную создавать и отслеживать временные файлы, но зачем изобретать велосипед? Tempfile
предоставляет вам случайное, уникальное имя файла, снижая риск коллизий.
Для тех, кто стремится к большему контролю, метод Tempfile.new
принимает параметры для настройки имени файла и его расположения. Но помните, с великой силой приходит великая ответственность - вам придется удалять эти файлы вручную.
Настоящее преимущество использования Tempfile
заключается в его потокобезопасности и сборке мусора. Он блокирует файл и гарантирует, что конфиденциальные данные не останутся дольше, чем нужно. Временный файл ведет себя почти так же, как обычный объект File, так что вы можете читать из него, писать в него и в противном случае манипулировать им, используя типичные операции с файлами.
См. также
- Документация Ruby API для более глубокого изучения использования Tempfile: API Dock Tempfile
- Руководство по работе с файлами в Ruby для более подробной информации о работе с файлами: Работа с файлами