Luaファイル操作の説明
I/Oライブラリは、ファイルを操作するための2つの異なる方法を提供します。
ioテーブル呼び出しメソッド
ioテーブルを使用すると、io.openは指定されたファイルの説明を返し、すべての操作はこのファイルの説明を中心に行われます。ioテーブルは、3つの定義済みファイルの説明io.stdin、io.stdout、io.stderrも提供します。
ファイルハンドル直接呼出し方式
file:XXX()関数メソッドを使用します。fileはio.open()が返すファイルハンドルです。ほとんどのI/O関数呼び出しは、失敗するとnilとエラーメッセージを返し、成功するとnilを返すものもある
IO
io.close ([ファイル])
io.flush ()
file:flush() と同等で、キャッシュの内容をすべてデフォルトの出力ファイルに出力します。
io.lines ([ファイル名])
指定されたファイル filename を読み込みモードで開き、呼び出されるたびにファイルの 1 行を取得し、ファイルの最後に達すると nil を返して引数なしで自動的にファイルを閉じる反復関数を返します io.lines() <=> io.input():lines(); デフォルト入力デバイスの内容を読み込み、ファイルの終わりでそれを閉じません。
for line in io.lines("main.lua") do
print(line)
end
io.open (ファイル名[, モード])
モードを使用します。
r"。読み込みモード(デフォルト)。
"w":書き込みモードです。
"a": 追加モード。
"r+": 更新モード、以前のデータはすべて保存されます。
"w+": 更新モード、以前のデータはすべて消去されます。
"a+": 追加更新モード、以前のデータはすべて保存され、ファイル末尾への追加のみが許可されます。
"b": 一部のシステムではバイナリモードがサポートされています。
io.read (...)
io.type (obj)
obj が利用可能なファイルハンドルであるかどうかを検出します。
を返します。
"file": 開いているファイルハンドルの場合
クローズドファイル:閉じたファイルへのハンドル
nil: objがファイルハンドルでないことを意味します。
io.write (...)
io.output():writeと同じ意味です。
ファイル
file:close()
ファイルハンドルがガベージコレクションされると、ファイルは自動的にクローズされます。ハンドルは予測できない値に変更されます
ファイル:フラッシュ()
バッファの全データをファイルに書き込む
ファイル:ラインズ()
呼び出されるたびにファイルの1行を取得し、ファイルの終端に達するとnilを返しますが、ファイルを閉じることはありません。
for line in file:lines() do body end
file:read(...)
各フォーマット関数は文字列または数値を返し、正しく読み込まれなかった場合はnilを返します。
形式を指定します。
"n"。数値を読み込む("number")
"a": 現在の位置からファイル全体を読み込むか、ファイルの終端であれば空文字列を返す ("all")
"l"。[デフォルト】次の行を読む、またはファイルの終端であればnilを返す ("line")
数を指定します。指定されたバイト数の文字を読み込む、またはファイルの終端であればnilを読み込む。numberが0の場合は空文字列を、終端の場合はnilを返す。
file:seek(whence)
現在のファイルの位置を設定・取得し、成功すれば最終的なファイルの位置(バイト)を返し、失敗すればnilとエラーメッセージを返します。
パラメータ
ということです。
"set": ファイルのヘッダーから
"cur": 現在の位置から開始 [デフォルト].
"end"。ファイルの終端から開始
offset:デフォルトは0
引数なし file:seek() は現在の位置を返し、 file:seek("set") はファイルの先頭を、 file:seek("end") はファイルの終端を探し、ファイルサイズを返します。
file:write(...)
指定されたパラメータ形式でファイルの内容を出力します。パラメータは文字または数字でなければならず、それ以外の値を出力する場合は、tostringまたはstring.formatで変換する必要があります。
インスタンス
ファイルの全内容を読み取る
function readfile(path)
local file = io.open(path, "r")
if file then
local content = file:read("*a")
io.close(file)
return content
end
return nil
end
コンテンツをファイルに書き込む
function writefile(path, content, mode)
mode = mode or "w+b"
local file = io.open(path, mode)
if file then
if file:write(content) == nil then return false end
io.close(file)
return true
else
return false
end
end
ファイルサイズ
-- @return : number of file bytes
function filesize(path)
local size = false
local file = io.open(path, "r")
if file then
local current = file:seek()
size = file:seek("end")
file:seek("set", current)
io.close(file)
end
return size
end
ファイルが存在するか
function fileExists(path)
local file = io.open(path, "r")
if file then
io.close(file)
return true
end
return false
end
関連
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン