I/Oライブラリには、ファイル処理を行うための2つの異なる方法があります。
1、ioテーブル呼び出しモード:ioテーブルを使用すると、io.openは、指定されたファイルの説明を返し、すべての操作は、このファイルの説明を中心になります。
ioテーブルには3つの定義済みファイル記述io.stdin、io.stdout、io.stderrもあります。
2、ファイルハンドルを直接呼び出すには、つまり、ファイルの使用:XXX()関数は、操作のために、どのio.open()ファイルハンドルに戻りますファイル
ほとんどのI/O関数呼び出しは、失敗するとnilとエラーメッセージを返し、いくつかの関数は成功するとnilを返します。
1. io.close
機能:file:close()に相当し、デフォルトの出力ファイルを閉じます。
2、io.flush ,バッファの内容をすべてデフォルトの出力ファイルに出力します。
3. io.lines
関数:指定されたファイルファイル名の読み取りモードを開き、反復関数を返し、各呼び出しは、ファイルの終わりは、nilを返しますファイルの内容の行を取得し、自動的にファイルを閉じます。
引数なし io.lines() <=> io.input():lines(); デフォルトの入力デバイスの内容を読み込みますが、終了時にファイルを閉じません。
例えば for line in io.lines("main.lua") do
print(行)
了い
4. io.open
Function: 指定されたモードでファイルをオープンし、成功すればファイルハンドルを返し、失敗すればnilとエラーメッセージを返します。
モードです。
「r": 読み取りモード;
"w":書き込みモード。
"a":追加モード。
"r+":更新モード、すべてのデータが保存されます。
"w+":更新モード、すべてのデータが消去されます。
"a+":追加更新モード、すべてのデータが保存されます。
"b": バイナリメソッドをサポートするシステムもあります。
5. io.output
機能: io.inputと同等ですが、デフォルトの出力ファイルを操作します。
6. io.popen
Function: progプログラムを追加プロセスで開始し、progに使われたファイルハンドルを返します。
7. io.read
機能:io.input():readと同等
8. io.tmpfile :write
11. file:close()
機能:ファイルを閉じる
注意:ファイルハンドルがゴミ箱に回収されると、ファイルは自動的に閉じられます。ハンドルは予測できない値に変更されます。
12. file:flush()
ファンクション:バッファ内の全データをファイルに書き込む
13. file:lines()
function: 反復関数に戻り、各呼び出しはファイルの行を取得し、ファイルの終わりまで行くとnilを返しますが、ファイルは閉じません。
例: for line in file:lines() do body end
14. file:read(...)
関数: 指定されたフォーマットに従ってファイルを読み込みます。各フォーマットに従って、関数は文字列または数値を返します。
フォーマット
"*n": 数字の読み取り
"*a":現在位置からファイル全体を読み込み、ファイルの終端であれば空文字列を返します。
"*l": [デフォルト]次の行の内容を読み込み、ファイルの終わりであればnil。
number: 指定されたバイト数の文字を読み込み、ファイルの末尾であればnilを返します。
15. file:seek([whence][,offset])。
関数:現在のファイルの場所を設定または取得し、成功すれば最終的なファイルの場所を返し、失敗すればnilとエラーメッセージを返します。
パラメトリック
だから
「set": ヘッダーから
"cur":現在の位置から開始[デフォルト]
"end":ファイルの最後から
オフセット:デフォルトは0
file:seek()は現在の位置を返し、file:seek("set")はファイルの先頭を、file:seek("end")はファイルの末尾を返し、ファイルサイズを返します。
16. file:setvbuf(mode,[,size])
機能:出力ファイルのバッファモードを設定します。
パラメトリック
モードです。
"no":バッファリングなし、つまり直接出力
"full":バッファがいっぱい、つまりバッファがいっぱいになると出力操作が実行されます。
「line": 行単位で出力
最後の2つのモードは、サイズがバッファのサイズを指定することができ、サイズを無視すると、自動的に最適なサイズに調整されます。
17. file:write(...)
関数:指定されたパラメータのフォーマットに従ってファイルの内容を出力します。パラメータは文字か数値でなければなりません。他の値を出力したい場合は、tostringかstring.formatで変換する必要があります。




