파일을 줄 배열 형태로 읽어오기 (LCC.web_file.get_lines)
선언
lines, err = LCC.web_file.get_lines(path, timeout?)
매개변수
- path
문자열 형태로, 읽어올 파일의 경로 - timeout
수치 형태로, 선택 사항; 요청 시간 초과 시간(초), 기본값은60
반환 값
- lines
테이블 형태로, 파일 내용이 줄 단위로 구성된 배열(일괄적인 줄 바꿈 기호는\n임); 실패할 경우nil이 반환됨 - err
문자열 형태 또는nil형태로, 실패 시 발생하는 오류에 대한 설명
설명
파일의 전체 내용을 읽어들인 후 줄 단위로 분할하여 배열로 반환합니다.
읽기 전에 먼저\r\n를\n형태로 일괄 변환합니다.
읽기와 쓰기 함수 조합
파일이 줄바꿈 문자로 끝나면 get_lines는 마지막 분할에서 생긴 빈 문자열을 유지합니다. 예를 들어 두 줄의 텍스트 "A\nB\n"는 {"A", "B", ""}를 반환합니다. 이 배열을 set_range_lines(path, 1, lines)에 전달하면 마지막 빈 줄을 포함해 세 줄이 기록됩니다.
줄 번호를 기준으로 내용을 읽고 바꾸려면 get_range_lines와 set_range_lines를 함께 사용하세요. 파일 전체를 읽고 수정한 뒤 덮어쓰려면 get_lines와 set_lines를 함께 사용하세요. set_lines는 파일 전체를 덮어쓰므로 일부 내용만 바꾸는 용도로는 적합하지 않습니다.
두 조합 모두 읽기와 쓰기는 별도의 요청이므로 전체 읽기, 수정, 쓰기 과정은 원자적 연산이 아닙니다. 동시에 쓰기 작업이 발생하는 경우 읽기 이후의 변경 사항을 덮어쓰지 않도록 접근을 조율해야 합니다.
예시
local lines, err = LCC.web_file.get_lines("/설정/list.txt")
if not lines then
error(err)
end
print("총", #lines, "줄")