web-dev-qa-db-fra.com

Mode d'ouverture de fichier en Ruby

Je suis nouveau programmeur en Ruby. Quelqu'un peut-il prendre un exemple d'ouverture de fichier avec le mode r +, w +, a + dans Ruby? Quelle est la différence entre eux et r, w, a?

Veuillez expliquer et fournir un exemple.

50
amir amir

Les modes d'ouverture de fichier ne sont pas vraiment spécifiques à Ruby - ils font partie de IEEE Std 1003.1 ( Single UNIX Specification ). Vous pouvez en savoir plus ici:

http://pubs.opengroup.org/onlinepubs/009695399/functions/fopen.html

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.

Tout mode contenant la lettre "b" signifie fichier binaire. Si le "b" n'est pas présent, c'est un fichier "texte brut".

La différence entre "ouvert" et "ouvert pour mise à jour" est indiquée comme suit:

Lorsqu'un fichier est ouvert avec le mode de mise à jour ('+' comme deuxième ou troisième caractère dans l'argument mode), l'entrée et la sortie peuvent être effectuées sur le flux associé. Cependant, l'application doit garantir que la sortie n'est pas directement suivie d'une entrée sans appel intermédiaire à fflush () ou à une fonction de positionnement de fichier (fseek (), fsetpos () ou rewind ()), et que l'entrée n'est pas directement suivie par sortie sans appel intermédiaire à une fonction de positionnement de fichier, sauf si l'opération d'entrée rencontre la fin de fichier.

100
miku