2010-01-19 4 views
10

Можно ли преобразовать строку в файл без записи на диск?Ruby Convert String to File

Я хотел бы Повсеместно работать как строка файла:

input = "123" 
if (ARGV.length == 1) 
    input = File.open(ARGV[0]) 

    #do stuff with input 
end 

Могу ли я создать файл из строки (без записи на диск)? В противном случае я бы не смог сделать input.readline(), когда это строка.

+0

добавьте ключевое слово конца в конце вашего примера;) – Alexey

ответ

28

Вы можете использовать StringIO (1.8.7, 1.9.3) для создания IO (1.8.7, 1.9.3) объекта (то есть объект, который действует как файл) из строки:

file = StringIO.new("123") 
line = file.readline 
file.close 
5

StringIO может использоваться для создания файлового интерфейса для строк.

2

StringIO является хорошо, вы также можете сделать это с помощью блока:

StringIO.open(string) do |file| 
    # do stuff here 
end 

Мне нравится эта альт над file.close