Создание файла
file = File.new("test.txt", "w+")
Code language: PHP (php)
После использования, мы должны закрыть файл
file.close
Code 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.close
Code 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 text
Code 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"
end
Code 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") # false
Code language: PHP (php)