수색…


파일에서 읽기

다음 데이터가 포함 된 lyrics.txt 파일이 있다고 가정 해 보겠습니다.

summer has come and passed
the innocent can never last
wake me up when september ends

한 번에 전체 파일 읽기

file:read_file(File) 을 사용하여 전체 파일을 읽을 수 있습니다. 이것은 원자 적 연산입니다.

1> file:read_file("lyrics.txt").
{ok,<<"summer has come and passed\r\nthe innocent can never last\r\nWake me up w
hen september ends\r\n">>}

한 번에 한 줄씩 읽음

io:get_line 은 개행이나 파일의 끝까지 텍스트를 읽습니다.

1> {ok, S} = file:open("lyrics.txt", read).
{ok,<0.57.0>}
2> io:get_line(S, '').
"summer has come and passed\n"
3> io:get_line(S, '').
"the innocent can never last\n"
4> io:get_line(S, '').
"wake me up when september ends\n"
5> io:get_line(S, '').
eof
6> file:close(S).
ok

랜덤 액세스로 읽기

file:pread(IoDevice, Start, Len)IoDevice 에서 Len 만큼 Start 에서 읽습니다.

1> {ok, S} = file:open("lyrics.txt", read).
{ok,<0.57.0>}
2> file:pread(S, 0, 6).
{ok,"summer"}
3> file:pread(S, 7, 3).
{ok,"has"}       

파일에 쓰기

한 번에 한 줄 씩 작성하십시오.

write 모드로 파일을 열고 io:format/2 :

1> {ok, S} = file:open("fruit_count.txt", [write]).
{ok,<0.57.0>}
2> io:format(S, "~s~n", ["Mango 5"]).
ok
3> io:format(S, "~s~n", ["Olive 12"]).
ok
4> io:format(S, "~s~n", ["Watermelon 3"]).
ok
5>

결과는 다음과 같은 내용의 fruit_count.txt 파일이됩니다.

Mango 5
Olive 12
Watermelon 3

파일을 쓰기 모드로 열면 파일 시스템에 파일이 존재하지 않을 경우 파일이 작성됩니다.

file:open/2 와 함께 write 옵션을 사용하면 파일에 아무 것도 쓰지 않아도 파일이 잘립니다 . 이를 방지하려면 [read,write] 또는 [append] 모드로 파일을 엽니 다.

한 번에 전체 파일 쓰기

file:write_file(Filename, IO) 은 파일을 한 번에 쓰는 가장 간단한 함수입니다. 파일이 이미 있으면 덮어 씁니다. 그렇지 않으면 파일이 만들어집니다.

1> file:write_file("fruit_count.txt", ["Mango 5\nOlive 12\nWatermelon 3\n"
]).
ok
2> file:read_file("fruit_count.txt").
{ok,<<"Mango 5\nOlive 12\nWatermelon 3\n">>}
3>

랜덤 액세스로 쓰기

랜덤 액세스 기록의 경우 file:pwrite(IoDevice, Location, Bytes) 가 사용됩니다. 파일의 일부 문자열을 바꾸려면이 방법이 유용합니다.

위에서 만든 파일에서 "올리브 12"를 "애플 15"로 변경한다고 가정 해 봅시다.

1> {ok, S} = file:open("fruit_count.txt", [read, write]).
{ok,{file_descriptor,prim_file,{#Port<0.412>,676}}}
2> file:pwrite(S, 8, ["Apple 15\n"]).
ok
3> file:read_file("fruit_count.txt").
{ok,<<"Mango 5\nApple 15\nWatermelon 3">>}
4> file:close(S).
ok
5>


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow