2011-08-16 13 views
42

Jestem nowym programmasterem w Ruby. Czy ktoś może posłużyć się przykładem na temat otwierania pliku za pomocą r +, w +, a + w Ruby? Jaka jest różnica między nimi a r, w, a?Tryb otwierania pliku w Ruby

Proszę wyjaśnić i podać przykład.

Odpowiedz

85

Tryby otwierania plików nie są specyficzne dla ruby ​​- są częścią standardu IEEE Std 1003.1 (Single UNIX Specification). Możesz przeczytać więcej na ten temat tutaj:

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. 

dowolnym trybie, który zawiera literę „b” oznacza dla pliku binarnego. Jeśli "b" nie jest obecny, jest to plik "zwykłego tekstu".

Różnica pomiędzy „otwarty” i „otwarte do aktualizacji” określone jest jako:

Jeśli plik jest otwarty w trybie uaktualnienia („+” w drugiej lub trzeciej postaci w argumencie Mode) zarówno wejście, jak i wyjście mogą być wykonywane na powiązanym strumieniu. Jednak aplikacja powinna zapewnić, że po wyjściu nie następuje bezpośrednio wejście bez interweniującego wywołania funkcji fflush() lub funkcji pozycjonowania pliku (fseek(), fsetpos() lub rewind()), a dane wejściowe nie są bezpośrednio obserwowane przez wyjście bez interweniującego wywołania funkcji pozycjonowania pliku, chyba że operacja wejścia napotka koniec pliku.

+0

Dla osób zainteresowanych krótkim przykładem demonstruje dołączanie do pliku: 'echo 'foobar"> plik_dziennika && ruby ​​-e' File.open ("some_file", "a") {| f | f.puts "catdog"} " – mbigras

Powiązane problemy