`File` 객체의 액세스 모드 (예 : w +, r +)의 차이점
Ruby에서 파일을 사용할 때 r+
및 w+
모드 의 차이점은 무엇 입니까? [정보] 어떤 a+
모드?
참조 http://www.tutorialspoint.com/ruby/ruby_input_output.htm를
인용 :
r
읽기 전용 모드. 파일 포인터는 파일 시작 부분에 위치합니다. 이것이 기본 모드입니다.r +
읽기-쓰기 모드. 파일 포인터는 파일의 시작 부분에 있습니다.w
쓰기 전용 모드. 파일이있는 경우 파일을 덮어 씁니다. 파일이 존재하지 않으면 쓰기를위한 새 파일을 만듭니다.w +
읽기-쓰기 모드. 파일이있는 경우 기존 파일을 덮어 씁니다. 파일이 없으면 읽기 및 쓰기를위한 새 파일을 만듭니다.
쓰기 전용 모드. 파일이있는 경우 파일 포인터는 파일의 끝에 있습니다. 즉, 파일이 추가 모드에 있습니다. 파일이 존재하지 않으면 쓰기를 위해 새 파일을 생성합니다.a +
읽기 및 쓰기 모드. 파일이있는 경우 파일 포인터는 파일의 끝에 있습니다. 파일이 추가 모드로 열립니다. 파일이 존재하지 않으면 읽기 및 쓰기를위한 새 파일을 생성합니다.
(강조 내.)
r +, w + 및 a +는 모두 읽기-쓰기를 수행합니다. w +는 파일을 자릅니다. a +가 추가됩니다. w + 및 a + 둘 다 파일이없는 경우 생성합니다.)
액세스 모드 r+
, w+
그리고 a+
에서 파일을 열고 읽기 및 쓰기 모드를하지만, 다음과 같은 차이가 :
r+
파일의 시작 부분에서 시작하지만 파일이 없으면 새 파일을 만들지 않습니다.
w+
파일이 있으면 기존 파일을 길이가 0으로 자르고 그렇지 않으면 새 파일을 만듭니다.
a+
파일이 있으면 파일의 끝에서 시작하고, 그렇지 않으면 새 파일을 만듭니다.
내 이익을 위해 / 참조 목적으로 :
|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
답변 : r +와 w + 모두 파일에 쓸 수 있지만 r +는 파일 내용을 자르지 (삭제)하지 않으며 w +에서 파일 내용을 자르는 동안 해당 파일이 종료되지 않으면 새 파일을 만들지 않습니다. 해당 파일이 없으면 새 파일을 만듭니다.
'Development Tip' 카테고리의 다른 글
Django-템플릿 'for'루프에서 튜플 풀기 방법 (0) | 2021.01.05 |
---|---|
내 DateTime을 UTC로 변환하는 데 문제가 있습니다. (0) | 2021.01.05 |
서버 측 FileField에서 특정 파일 유형 만 허용 (0) | 2021.01.05 |
PHP에서 문자열이 base64인지 확인하는 방법 (0) | 2021.01.05 |
부드러운 곡선 그리기-필요한 방법 (0) | 2021.01.05 |