Development Tip

`File` 객체의 액세스 모드 (예 : w +, r +)의 차이점

yourdevel 2021. 1. 5. 19:42
반응형

`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 +에서 파일 내용을 자르는 동안 해당 파일이 종료되지 않으면 새 파일을 만들지 않습니다. 해당 파일이 없으면 새 파일을 만듭니다.

참조 URL : https://stackoverflow.com/questions/1581674/difference-between-the-access-modes-of-the-file-object-ie-wr

반응형