Luartのファイルの使用


LuaRTは、特定のランタイムライブラリでLuaで開発する包括的なWindowsフレームワークです.Lua標準ライブラリでは入出力機能はIOモジュール内に集められる.Luartでは、sysモジュール、特にFileオブジェクト内にまとめられます.

Luartでのファイルオブジェクトの使用
Luartのファイルの操作はファイルオブジェクトの使用によって容易になります:ファイルの作成、オープン、クローズ、移動、コピー、削除.

ファイル値の作成
この点で、ファイルオブジェクトが物理的に存在するか、または存在しないかもしれないファイルの抽象化を表すことを理解することは重要です.たとえば、新しいファイルを作成するとき、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

ファイル操作
ファイルオブジェクトを使用してファイル操作を実行できます.
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 ()メソッドを呼び出して行われます.デフォルトでは、ファイルは“read”モードで開きます.ファイルエンコーディングは2番目の引数として指定できます.
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 : open ()メソッドが呼ばれると、ファイルに書き込みまたは読み込みが可能です(呼び出しで使用されるモードによって異なります).これらのメソッドは、バッファオブジェクトをバイナリモード(メモリバイナリデータを含む)またはUTF 8またはUnicodeモードの文字列で返します.

ファイル内容の読み込み
ファイルの内容を読み取るには2つの方法があります.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 ()メソッドは、引数として指定された引数(UTF 8またはUnicodeモードを使用する場合)またはバイト(バイナリモードで)を指定します.
file : readln ()メソッドは行を読み込みます(行文字の末尾まで\\r\n "または"\n "が発生します).

ファイルへの書き込み
ファイルにデータを書き込むには2つの方法があります.file : write ()およびfile : writeln ()
各メソッドは1つの引数をとり、ファイルに書き込む文字列に変換します.バイナリモードでは、バッファオブジェクトを使用できます.
file : writeln ()は、ファイルに行を書き込みます.

ファイル位置
ファイル.Positionプロパティは現在のファイル位置を数値として取得または設定します.ファイル位置は常に1から始まります(Luaでのすべてのインデックス/位置の値のように).
ファイル位置の解釈はファイルエンコーディングに依存します.
「バイナリ」符号化では、位置はバイトで表されます.
「utf 8」または「ユニコード」符号化では、位置は文字で表されます.
ファイル.EOFプロパティは、ファイルの終端に達したかどうかを調べます.

ファイルタイムスタンプ
ファイル.アクセスするファイル.変更とファイル.DataTimeオブジェクトを使用したタイムスタンプを設定または取得する許可を作成しました(Luartでは、DateTimeオブジェクトはモーメント、日付と時刻の組み合わせを表します).

ファイル属性
ファイル.隠しファイル.一時ファイルとファイル.ReadOnly対応する属性を設定または取得できます.

ファイルのパス名
ファイル.フルパス、ファイル.ファイル名、ファイル.拡張子、ファイル.pathはファイル名の異なる部分へのアクセスを許可する.
ご覧のように、ファイルオブジェクトはLuartのファイルの作成、読み込み、書き込み、操作に関連するすべての機能に簡単にアクセスできます.これらの機能は、標準のLuaライブラリによって提供される機能を超えて行く.