2015-04-26 2 views
0

Я пытаюсь отобразить содержимое файла.Как отобразить содержимое файла

class CommonLog 
    def initialize(filename) 
    @filename = filename   
    end 
    def readfile 
    text = File.readlines(@filename).map do |line| 
     line.split(" ") 
     puts text 
    end 
    end 
end 

my_file = CommonLog.new("test.log") 
puts my_file.readfile 

Я не буду получать сообщение об ошибке Нет такого файла или каталога -.. TEST.LOG»

+2

Как говорится в ошибке, такого файла нет. – sawa

+0

Попробуйте пройти абсолютный путь к файлу типа «CommonLog.new» («full/path/test.log») ' –

+0

Также проверьте, дает ли' Dir.pwd' сообщение об ошибке. Иногда это происходит со мной, когда я подключен к консоли rails старого развертывания, а ревизия Capistrano больше не существует. – kiddorails

ответ

0

Создание файла Но как только вы пройти эту ошибку, когда файл не существует, вы делаете то, что не стоит.

Вы распределяете линию, но не хранение или использование информации.

Вы используете путы для вывода возврата текстового объекта, но ваш вопрос название, как просмотреть содержимое.

Вы можете указать puts line, который выведет каждую строку файла после его существования.

Вы назначаете текст и ссылаетесь на него в том же заявлении, и поэтому, когда вы помещаете text, это nil. Метод вернет назначение в текст, но в противном случае он не будет использоваться.

Если вы удалите ссылку на text внутри блока, вы можете избавиться от назначения переменной text.

Наконец, вы можете удалить весь блок, если хотите просто вернуть массив строк или использовать join по методу readlines.

Модернизированная версия может выглядеть следующим образом:

class CommonLog 
    def initialize(filename) 
    @filename = filename 
    end 
    def readfile 
    File.readlines(@filename) 
    end 
end 

my_file = CommonLog.new("test.log") 
puts my_file.readfile # This actually prints an Array 

Этот массив содержит содержимое файла, а путы отображает содержимое этого файла, хранящегося в этом массиве.

+0

Очень важные моменты, но вы не ответили на вопрос. –

+0

Тогда я полагаю, что я не знаю, что означает значение «Как отображать содержимое файла». – vgoff

+0

Название - не весь вопрос. Если вы читаете тело, в нем говорится, что «[OP is] я получаю ошибку Нет такого файла или каталога - test.log». Вот в чем вопрос. –

Смежные вопросы