Ruby конвертировать строку в файл - PullRequest
12 голосов
/ 19 января 2010

Возможно ли преобразовать строку в файл без записи на диск?

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

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

   #do stuff with input
end

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

Ответы [ 3 ]

32 голосов
/ 19 января 2010

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

file = StringIO.new("123")
line = file.readline
file.close
5 голосов
/ 19 января 2010

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

2 голосов
/ 12 апреля 2016

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...