Я новый программист в Ruby. Может ли кто-нибудь взять пример об открытии файла с помощью r +, w +, a + mode в Ruby? В чем разница между ними и r, w, a?
Пожалуйста, объясните и укажите пример.
Ответ 1
Режимы открытия файла не совсем специфичны для рубинов - они являются частью IEEE Std 1003.1 (Single UNIX Specification). Вы можете прочитать об этом здесь:
r or rb
Open file for reading.
w or wb
Truncate to zero length or create file for writing.
a or ab
Append; open or create file for writing at end-of-file.
r+ or rb+ or r+b
Open file for update (reading and writing).
w+ or wb+ or w+b
Truncate to zero length or create file for update.
a+ or ab+ or a+b
Append; open or create file for update, writing at end-of-file.
Любой режим, который содержит букву "b", обозначает двоичный файл. Если "b" нет, это файл "обычного текста".
Разница между 'open' и 'open for update' обозначается как:
Когда файл открывается в режиме обновления ( "+" в качестве второго или третьего символа в аргументе режима), как вход, так и вывод могут выполняться в соответствующем потоке. Тем не менее, приложение должно гарантировать, что на вывод напрямую не следует вход без промежуточного вызова функции fflush() или функции позиционирования файла (fseek(), fsetpos() или перемотка назад()), и на вход напрямую не следует вывод без промежуточного вызова функции позиционирования файла, если только операция ввода не встречает конец файла.