2009-10-17 2 views

답변

108

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

인용을 참조하십시오 :

R
읽기 전용 모드. 파일 포인터는 파일의 시작 부분에 있습니다. 이것은 기본 모드입니다.

r +
읽기 - 쓰기 모드. 파일 포인터는 파일의 시작 부분에 있습니다.

w
쓰기 전용 모드. 파일이 있으면 파일을 덮어 씁니다. 파일이 존재하지 않으면 새로운 파일을 작성합니다.

w +
읽기 - 쓰기 모드. 파일이 있으면 기존 파일을 덮어 씁니다. 파일이 없으면 읽기 및 쓰기 용으로 새 파일을 만듭니다.

a
쓰기 전용 모드. 파일 포인터는 파일이있는 경우 파일의 끝에 있습니다. 즉, 파일이 추가 모드에 있습니다. 파일이 없으면 쓰기 용으로 새 파일을 작성합니다.

a +
읽기 및 쓰기 모드. 파일 포인터가있는 경우 파일의 끝에 있습니다. 파일이 추가 모드로 열립니다. 파일이 없으면 읽기 및 쓰기 용으로 새 파일을 작성합니다.

(empshasis 광산.)

R +, + 승, 그리고 +는 모두 읽기 - 쓰기 작업을 수행. w +는 파일을 절단합니다. a +가 추가됩니다. + w와 + 모두 존재하지 않는 경우 파일을 작성)

+1

감사합니다, 당신은''w + 수단이 추가 몇 가지 오해가 있다는 것을 나를 위해 확인된다. – akostadinov

+0

@Jonathan Figland [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 그 질문이 닫힌 것처럼 보입니다. 주요 문제를 해결할 수있는 의견이 있습니다. 문제가 해결 되었습니까? –

6

답변 :. 모두 R +와 w + 우리는하지 않습니다뿐만 아니라) 파일의 내용을 읽고, 파일에 쓰기 만 +는 자르지 않는 r은 (삭제할 수 있습니다 그런 파일이 존재하지 않으면 새로운 파일을 생성한다. w +에서 파일의 내용을 자르거나 그 파일이 존재하지 않으면 새로운 파일을 만든다.

10

액세스 모드 r+, w+a+에서 파일을 읽고 쓰기 모드로 열리지 만 다음과 같은 차이 :

r+ 파일의 시작 부분에서 시작하지만 '아무튼 경우 새 파일을 생성하지 않습니다 존재하지 않습니다.

w+ 파일이 존재하면 기존 파일을 길이를 0으로 자릅니다. 그렇지 않으면 새 파일을 만듭니다.

a+은 파일이있는 경우 파일 끝에서 시작하고, 그렇지 않으면 새 파일을 만듭니다.참고 목적에 대한 내 자신의 이익을 위해

4

/:

|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 
관련 문제