2009-10-17 9 views

Odpowiedz

108

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

Cytując:

r
tryb tylko do odczytu. Wskaźnik pliku znajduje się na początku pliku. To jest tryb domyślny.

r +
Tryb odczytu i zapisu. Wskaźnik pliku znajdzie się na początku pliku.

w
Tryb tylko do zapisu. Zastępuje plik, jeśli plik istnieje. Jeśli plik nie istnieje, tworzy nowy plik do zapisu.

w +
Tryb odczytu i zapisu. Zastępuje istniejący plik, jeśli plik istnieje. Jeśli plik nie istnieje, tworzy nowy plik do odczytu i zapisu.

a
Tryb tylko do zapisu. Wskaźnik pliku znajduje się na końcu pliku, jeśli plik istnieje. Oznacza to, że plik znajduje się w trybie dołączania. Jeśli plik nie istnieje, tworzy nowy plik do zapisu.

a +
Tryb odczytu i zapisu. Wskaźnik pliku znajduje się na końcu pliku, jeśli plik istnieje. Plik zostanie otwarty w trybie dołączania. Jeśli plik nie istnieje, tworzy nowy plik do odczytu i zapisu.

(kopalnia empshasis.)

R + w + i + wszystko zrobić odczytu. w + obcina plik. a + dołącza. w + i a + oba tworzą plik, jeśli nie istnieje.)

+1

Dzięki, jesteś dla mnie potwierdzeniem, że istnieją pewne błędne przekonanie, że środki '' W + dołączy. – akostadinov

+0

@ Jonathan Figland Proszę sprawdzić [to] (http://stackoverflow.com/questions/42757267/why-does-a-mode-in-ruby-and-python-append-mode-start-from-the-begin- of-file) – Ratatouille

+0

@Ratatouille Pytanie to wydaje się być zamknięte. Komentarze wydają się rozwiązywać główne problemy. Czy problem został rozwiązany? –

6

Odpowiedź: Zarówno r +, jak i w + możemy czytać, zapisywać w pliku, ale r + nie obcina (nie usuwa) zawartości pliku, jak również nie utwórz nowy plik, jeśli taki plik nie kończy się, gdy w + zostanie skrócona zawartość pliku, a także utworzy nowy plik, jeśli taki plik nie istnieje.

10

tryby dostępu r+, w+ i a+ otwiera plik w czytać i pisać tryb, ale z następującą różnicą:

r+ zaczyna się na początku pliku, ale nie stworzy nowy plik, jeśli nie robi” t istnieje.

w+ skraca istniejący plik do długości zerowej, jeśli plik istnieje, w przeciwnym razie tworzy nowy plik.

a+ rozpoczyna się na końcu pliku, jeśli plik istnieje, w przeciwnym razie tworzy nowy plik.

4

Dla własnej korzyści/dla celów referencyjnych:

|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 
Powiązane problemy