Рубрики
Ruby sololearn

Ruby работа с файлами

Создание файла

file = File.new("test.txt", "w+")Code language: PHP (php)

После использования, мы должны закрыть файл

file.closeCode language: CSS (css)

Режимы использования файлов в Ruby

r только для чтения, запускается с начала файла (режим по умолчанию).
r+ чтение-запись, начинается с начала файла.
w только для записи, обрезает существующий файл до нулевой длины или создает новый файл для записи.
w+ чтение-запись, обрезает существующий файл до нулевой длины, перезаписывая существующие данные, или создает новый файл для чтения и записи.
a только для записи, добавляется в конец файла, если файл существует, в противном случае создает новый файл для записи.
a+ чтение-запись, добавляет или читает с конца файла, если файл существует, в противном случае создает новый файл для чтения и записи.

Для открытия существующего файла

file = File.open("filename", "w+") Code language: JavaScript (javascript)

Чтение и запись

Методы put и write могут использоваться для записи содержимого в файл. Разница между ними в том, что put добавляет разрыв строки в конец строки, а write — нет.

file = File.new("test.txt", "w+")
file.puts("some text")
file.closeCode language: PHP (php)

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

File.open("file.txt", "w+") {
  |file| file.puts("some text") 
}Code language: JavaScript (javascript)

Чтение файла

f = File.new("test.txt", "w+")
f.puts("a line of text")
f.puts("another line of text")
f.close

puts File.read("test.txt")

# Outputs:
# a line of text
# another line of textCode language: PHP (php)

Мы также можем прочитать содержимое файла построчно, используя метод readlines. Метод readlines считывает весь файл на основе отдельных строк и возвращает эти строки в виде массива.

File.open("test.txt", "a+") {
  |file| file.puts("a line of text")
  file.puts("another line of text")
}

File.readlines("test.txt").each {
  |line| puts " --- #{line}"
}Code language: JavaScript (javascript)

Удаление файлов

Мы можем удалить файл с помощью метода File.delete
Будьте осторожны, так как эта команда удаляет файл навсегда.

File.delete("test.txt")Code language: CSS (css)

При работе с файлами важно сначала проверить, существует ли файл, чтобы предотвратить ошибку. file? Метод предоставляет простой способ проверить, существует ли файл.

File.open("test.txt") if File.file?("text.txt")

# Пример
if File.file?("demo.txt")
  f = File.open("demo.txt", "r")
  puts f.read
  f.close
else
  puts "File does not exist"
endCode language: Ruby (ruby)

Информация о файле. File Info

Ruby предоставляет несколько полезных методов для получения соответствующей информации о файле. Метод size возвращает размер файла. zero? Метод возвращает истину, если указанный файл существует и имеет нулевой размер (пуст)

# create a file
f = File.new("test.txt", "w+")
f.puts("some file content")

puts f.size # 19

f.close

puts File.zero?("test.txt") # false

# Еще пример
if File.file?("db.csv")
  puts File.size("db.csv")
end
 Code language: Ruby (ruby)

Мы также можем проверить, доступен ли файл для записи, чтения или исполнения:

f = File.new("test.txt", "w+")
f.puts("some content")
f.close

puts File.readable?("test.txt") # true
puts File.writable?("test.txt")   # true
puts File.executable?("test.txt") # falseCode language: PHP (php)

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *