LuaRT에서 파일 사용

6581 단어 luatutorialwindows
LuaRT은 특정 런타임 라이브러리를 사용하여 Lua에서 개발하기 위한 포괄적인 Windows 프레임워크입니다. Lua 표준 라이브러리에서 입출력 기능은 io 모듈 내에서 수집됩니다. LuaRT에서는 sys 모듈, 특히 File 개체 내에서 함께 그룹화됩니다.

LuaRT에서 File 객체 사용하기



LuaRT에서 파일 조작은 File 객체를 사용하여 촉진됩니다: 파일 생성, 열기, 닫기, 이동, 복사, 삭제 ...

파일 값 만들기



이 시점에서 File 객체는 물리적으로 존재할 수도 있고 없을 수도 있는 파일의 추상화를 나타낸다는 것을 이해하는 것이 중요합니다. 예를 들어, 새 파일을 생성할 때 File:open() 메서드에 대한 호출만 컴퓨터 저장소에 파일을 물리적으로 생성합니다.

local newfile = sys.File("hello.txt") -- newfile holds a File value
print(newfile.exists) -- outputs false
newfile:open("write") -- creates the file physically on the disk 
newfile:close()       -- closes the opened File
print(newfile.exists) -- now outputs true


파일 작업



File 객체는 파일 작업을 수행하는 데 사용할 수 있습니다.

local file = sys.File("test.txt") 
file:copy("test_copy.txt")   -- copies file
file:move("C:\")             -- moves file
file:remove()                -- deletes the file


파일 열기 및 닫기



파일을 열어 내용을 읽거나 쓸 수 있습니다. 이것은 File:open() 메서드를 호출하여 수행됩니다. 기본적으로 파일은 "읽기"모드로 열려 있습니다. 파일 인코딩은 두 번째 인수로 지정하거나 바이트 표시 순서를 사용하여 감지할 수 있습니다.

local file = File("test.bin")
file:open()   -- opens the file "test.bin" in read mode (encoding is autodetected)
file:close()                   -- closes the file
file:open("write", "binary")   -- open the file in write mode (erasing its previous content), using "binary" encoding(ie raw binary)


Do not forget to close a file after the transaction on this one ended. This is done automatically when the File object is garbage collected, but that cannot be predicted.



파일 읽기 및 쓰기



File 객체가 생성되고 File:open() 메서드가 호출되면 호출에 사용된 모드에 따라 File에 쓰거나 읽을 수 있습니다. 이 메서드는 이진 모드(메모리 이진 데이터에 포함)의 버퍼 개체를 반환하거나 UTF8 또는 UNICODE 모드의 문자열을 반환합니다.


파일 내용 읽기

파일 내용을 읽는 방법에는 File:read() 및 File:readln()의 두 가지가 있습니다.

local file = File("README.TXT"):open()  -- opens the File for reading
print(file:read())  -- reads and prints all the file content 


File:read() 메서드는 인수로 지정된 문자 수(UTF8 또는 UNICODE 모드 사용 시) 또는 바이트(바이너리 모드)를 읽거나 인수가 제공되지 않은 경우 파일의 모든 내용을 읽습니다.

File:readln() 메서드는 줄을 읽습니다(줄 끝 문자 "\r\n"또는 "\n"이 나타날 때까지).


파일에 쓰기

파일에 데이터를 쓰는 방법에는 File:write() 및 File:writeln()의 두 가지가 있습니다.

각 메서드는 파일에 쓸 문자열로 변환된 하나의 인수를 사용합니다. 바이너리 모드에서는 Buffer 객체를 사용할 수 있습니다.

File:writeln()은 "\r\n"을 추가하여 파일에 한 줄을 씁니다(Windows의 줄 끝 마커에 해당).

파일 위치



File.position 속성은 현재 파일 위치를 숫자로 가져오거나 설정합니다. 파일 위치는 항상 1에서 시작합니다(Lua의 모든 인덱스/위치 값에 대해).
파일 위치 해석은 파일 인코딩에 따라 다릅니다.
"바이너리"인코딩에서 위치는 바이트로 표시됩니다.
"utf8"또는 "유니코드"인코딩에서 위치는 문자로 표시됩니다.
File.eof 속성은 파일 끝에 도달했는지 확인합니다.

파일 타임스탬프



File.accessed, File.modified 및 File.created는 Datetime 객체를 사용하여 타임스탬프를 설정하거나 가져올 수 있도록 허용합니다(LuaRT에서 Datetime 객체는 날짜와 시간의 조합인 순간을 나타냄).

파일 속성



File.hidden, File.temporary 및 File.readonly는 해당 속성을 설정하거나 가져올 수 있습니다.

파일 경로 및 이름



File.fullpath, File.filename, File.extension, File.path는 파일 이름의 다른 부분에 대한 액세스를 허용합니다.

보시다시피, File 객체는 LuaRT에서 파일 생성, 읽기, 쓰기 및 조작과 관련된 모든 기능에 대한 쉬운 액세스를 제공합니다. 이러한 기능은 표준 Lua 라이브러리에서 제공하는 기능을 능가합니다.

좋은 웹페이지 즐겨찾기