6.8. Zapis do pliku tymczasowego

Problem

Chcemy w bezpieczny sposób zapisywać dane do pliku tymczasowego o unikalnej nazwie.

Rozwiązanie

Za obsługę plików tymczasowych odpowiedzialna jest klasa Tempfile. Implementuje ona wszystkie metody klasy File, tworząc plik tymczasowy w unikalnej lokalizacji w drzewie katalogów.

require 'tempfile'
out = Tempfile.new("tempfile")
out.path        # => "C:/DOCUME~1/Andrzej1/USTAWI~1/Temp/tempfile3644.0"

Plik reprezentowany przez obiekt Tempfile otwierany jest w trybie odczytu i zapisu (w+), można więc zapisywać do niego zawartość i odczytywać ją bez potrzeby zamykania go i ponownego otwierania.

out << "Taki sobie tekst."
out.rewind
out.read                             # => "Taki sobie tekst."
out.close

Zauważmy, że do konstruktora ...

Get Ruby. Receptury now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.