10.1.21. Чтение всего файла в память

10.1.21. Чтение всего файла в память

Чтобы прочитать весь файл в массив, не нужно даже его предварительно открывать. Все сделает метод IO.readlines: откроет файл, прочитает и закроет.

arr = IO.readlines("myfile")

lines = arr.size

puts "myfile содержит #{lines} строк."

longest = arr.collect {|x| x.length}.max

puts "Самая длинная строка содержит #{longest} символов."

Можно также воспользоваться методом IO.read (который возвращает одну большую строку, а не массив строк).

str = IO.read("myfile")

bytes = arr.size

puts "myfile содержит #{bytes} байтов."

longest=str.collect {|x| x.length}.max # строки - перечисляемые объекты!

puts "Самая длинная строка содержит #{longest} символов."

Поскольку класс IO является предком File, то можно вместо этого писать File.deadlines и File.read.

Данный текст является ознакомительным фрагментом.



Поделитесь на страничке

Похожие главы из других книг:

Чтение файла 

Из книги автора

Чтение файла  BOOL ReadFile(HANDLE hFile, LPVOID lpBuffer, DWORD nNumberOfBytesToRead, LPDWORD lpNumberOfBytesRead, LPOVERLAPPED lpOverlapped) Возвращаемое значение: в случае успешного выполнения (которое считается таковым, даже если не был считан ни один байт из-за попытки чтения с выходом за пределы файла) — TRUE, иначе —


Установка размера файла, инициализация файла и разреженные файлы

Из книги автора

Установка размера файла, инициализация файла и разреженные файлы Функция SetEndOfFile позволяет переустановить размер файла, используя текущее значение указателя файла для определения его размера. Возможно как расширение, так и усечение файла. В случае расширения файла


Сканирование всего компьютера

Из книги автора

Сканирование всего компьютера Некоторые вредоносные программы могут скрываться в папках или файлах, к которым обращение происходит редко, а активность проявлять во время загрузки или выключения компьютера, когда антивирусный монитор еще не запущен или уже не работает.


2.4. Настройка всего остального

Из книги автора

2.4. Настройка всего остального Жизнь пользователя Windows проходит не только на Рабочем столе. Есть еще несколько небольших, но очень важных элементов интерфейса, которые тоже хорошо бы сразу настроить – иначе придется тратить много времени и сил на простейшие


10.1.22. Построчное чтение из файла

Из книги автора

10.1.22. Построчное чтение из файла Чтобы читать по одной строке из файла, можно обратиться к методу класса IO.foreach или к методу экземпляра each. В первом случае файл не нужно явно открывать.# Напечатать все строки, содержащие слово "target".IO.foreach("somefile") do |line| puts line if line =~ /target/end# Другой


10.1.23. Побайтное чтение из файла

Из книги автора

10.1.23. Побайтное чтение из файла Для чтения из файла по одному байту служит метод экземпляра each_byte. Напомним, что он передает в блок символ (то есть целое число); воспользуйтесь методом chr, если хотите преобразовать его в «настоящий» символ.file = File.new("myfile")e_count = 0file.each_byte do


Чтение из текстового файла

Из книги автора

Чтение из текстового файла Теперь выясним, как программными средствами читать данные из файла, используя соответствующий тип StreamReader. Вы должны помнить, что этот класс получается из TextReader, функциональные возможности которого описаны в табл. 16.8.Таблица 16.8. Основные члены


Чтение одиночного файла

Из книги автора

Чтение одиночного файла      Каким может быть идеальный признак STOP? Это должен быть такой символ, который обычно не используется в тексте и следовательно, не приводит к ситуации, когда он случайно встретится при вводе, и работа программы будет остановлена раньше чем мы


Пример 11-6. Чтение командой read из файла через перенаправление

Из книги автора

Пример 11-6. Чтение командой read из файла через перенаправление #!/bin/bashread var1 <data-fileecho "var1 = $var1"# Первая строка из "data-file" целиком записывается в переменную var1read var2 var3 <data-fileecho "var2 = $var2 var3 = $var3"# Обратите внимание!# Поведение команды "read" далеко от ожидаемого!# 1) Произошел возврат


Чтение из архивного файла

Из книги автора

Чтение из архивного файла В предыдущем разделе мы рассказали как сохранить объект вашего класса в архивном файле. Теперь опишем, как восстановить записанное ранее состояние объекта класса из архивного файла. Когда приложение желает восстановить состояние объекта


СОФТЕРРА: Память на лица, или Лица на память

Из книги автора

СОФТЕРРА: Память на лица, или Лица на память Автор: Алексей КлимовВышла девятая версия ACDSee. Судя по объему нововведений, это не «Девятый вал» Айвазовского [Иван Айвазовский, «Девятый вал». 1850 г] и даже не «9 рота» Бондарчука [Федор Бондарчук, «9 рота». 2005 г]. Поэтому в обзоре