2009-10-17 5 views

Répondre

108

Voir http://www.tutorialspoint.com/ruby/ruby_input_output.htm

Pour citer:

r
en mode lecture seule. Le pointeur de fichier est placé au début du fichier. C'est le mode par défaut.

r +
Mode lecture-écriture. Le pointeur de fichier sera au début du fichier.

w
Mode écriture seule. Remplace le fichier si le fichier existe. Si le fichier n'existe pas, crée un nouveau fichier à écrire.

w +
Mode lecture-écriture. Remplace le fichier existant si le fichier existe. Si le fichier n'existe pas, crée un nouveau fichier pour la lecture et l'écriture.

a
Mode écriture seule. Le pointeur de fichier est à la fin du fichier si le fichier existe. C'est-à-dire que le fichier est en mode ajout. Si le fichier n'existe pas, il crée un nouveau fichier pour l'écriture.

a +
Lecture et écriture en mode lecture. Le pointeur de fichier se trouve à la fin du fichier si le fichier existe. Le fichier s'ouvre en mode ajout. Si le fichier n'existe pas, il crée un nouveau fichier pour la lecture et l'écriture.

(mine empshasis.)

r +, w +, et + tout faire lecture-écriture. w + tronque le fichier. a + ajoute w + et a + les deux créent le fichier s'il n'existe pas.)

+1

Merci, vous confirmez pour moi qu'il ya une idée fausse que cela signifie '' w + append. – akostadinov

+0

@Jonathan Figland S'il vous plaît vérifier [this] (http://stackoverflow.com/questions/42757267/why-does-a-mode-in-ruby-and-python-append-mode-start-from-the-begin- of-file) – Ratatouille

+0

@Ratatouille Cette question semble avoir été fermée. Les commentaires semblent répondre aux principaux problèmes. Le problème est-il résolu? –

6

Réponse: Les deux r + et w + nous pouvons lire, écrire sur le fichier mais r + ne tronque pas le contenu du fichier et ne le fait pas crée un nouveau fichier si ce fichier ne se ferme pas alors que w + tronque le contenu du fichier et crée un nouveau fichier si ce fichier n'existe pas.

10

Modes d'accès r+, w+ et a+ ouvre le fichier dans lecture et d'écriture en mode, mais avec la différence suivante:

r+ commence au début du fichier, mais ne va pas créer un nouveau fichier si elle n » t existe.

w+ tronque le fichier existant à la longueur zéro si le fichier existe, sinon crée un nouveau fichier. Commence à la fin du fichier si le fichier existe, sinon crée un nouveau fichier.

4

Pour mon propre bénéfice/à titre de référence:

|mode|reads|writes|starts writing at|if preexists 
|r |yes |  |n/a    |ok 
|r+ |yes |yes |beginning  |fail 
|w |  |yes |beginning  |overwrite 
|w+ |yes |yes |beginning  |overwrite 
|a |  |yes |end    |append 
|a+ |yes |yes |end    |append 
Questions connexes