Fileクラス
Fileクラスは外部テキストファイルのリード/ライトに便利です。
AccessMode 列挙子
Fileクラスには、file.openとともに使用してファイルを開いた時のモードを設定する列挙子があります。これらの項目は"open"コマンドに対する引数であり、前に"File"がつきます。値は次の通りです:
| AccessModeの値 | 解説 |
ReadOnly | ファイルを読みとり専用で開く |
WriteOnly | ファイルを書き込み専用で開く。Appendと合わせて使用すると、ファイルは丸め処理されない。それのみで使用(またはTruncateと共に使用)すると、ファイルは丸め処理される。 |
ReadWrite | ファイルを書き込み/読みとりモードで開く。ファイルは丸め処理されない。 |
Append | ファイルをアペンドモードで開く(ファイルをアペンド可能にするには WriteOnly と合わせて使用する必要がある: WriteOnly | Append)ログ ファイルへの書き出しに有用。 |
Truncate | ファイルを丸め処理する |
Translate | Windowsテキストファイルでのキャリッジリターンおよびラインフィードの変換を有効にする |
"f" という名前のファイルオブジェクトを書き込み専用で開くには、次のコマンドを実行します:
f.open(File.WriteOnly | File.Translate);
WindowsファイルにはTranslateフラグが必要です。
Static 関数
メソッドと異なり、static関数は特定のオブジェクトを参照しません。これらのファイルを使用するには、前に"File."を付ける必要があります。これにより、これらの関数がFileクラスにリンクされていることが示されます。
| Static関数 | 解説 |
exists(filename) | ブーリアン: fileName が存在すれば true、存在しなければ false(filename = 文字列) |
remove(filename) | filenameが存在すれば、削除する。存在しなければ例外を返す(filename=文字列) |
write(filename, content) | filenameにcontentを書き込む。ファイルが既に存在する場合、元のコンテンツを完全に置き換える。ファイルに書き込みできない場合、例外を返す。 filename = 文字列; content = 文字列 |
read(filename) | 可能であればファイルのコンテンツを読みとり、返す。そうでない場合例外を返す。 filename = 文字列 |
isFile(filename) | ブーリアン: filename がファイルであれば true、そうでなければ false |
isDir(filename) | ブーリアン: filename がフォルダであれば true、そうでなければ false |
例えば、"logfile.txt"という名前のファイルが存在するかチェックするには、次のコマンドを実行します:
File.exists(“logfile.txt”);
File クラス プロパティ
Fileクラスのすべてのプロパティは読みとり専用です。
| Fileクラスプロパティ | タイプ | 解説 |
名前 | 文字列 | 拡張子を含むファイル名 |
path | 文字列 | ファイルのパス |
fullName | 文字列 | ファイルの完全な名前(パス、名前、および拡張子) |
baseName | 文字列 | ファイルのみの名前(パスや拡張子を除く) |
extension | 文字列 | ファイルの拡張子 |
exists | ブーリアン | ファイルが存在すればtrue;そうでなければfalse |
readable | ブーリアン | ファイルが読みとり可能であればtrue |
writable | ブーリアン | ファイルが書き込み可能であればtrue |
executable | ブーリアン | ファイルが実行可能であればtrue |
hidden | ブーリアン | ファイルが非表示であればtrue |
eof | ブーリアン | ファイルの読みとりが終わりに達していればtrue |
created | 日付 | ファイル作成時間 |
lastModified | 日付 | ファイルが最後に変更された時間 |
lastRead | 日付 | ファイルが最後に読まれた時間 |
size | 線の本数 | ファイルのサイズ;バイト |
File クラス メソッド
| Fileクラスメソッド | 解説 | データを返す |
new File(filename) | ファイル名を参照するファイルオブジェクトを作成;filename=文字列 | いいえ |
open(accessMode) | 名前付きaccessModeを使ってファイルを開く | いいえ |
close() | ファイルを閉じる | いいえ |
readByte() | ファイルから1バイトを読みとる;数値を返す | はい |
read() | ファイルのコンテンツを文字列で返す;読みとれない場合例外を返す | はい |
readLine() | 可能であればファイルから 1 行を読み取り、不可能であれば例外を返す。最後の空白は保持される。 | はい |
readLines() | ファイルのコンテンツを各行1つの文字列の配列として返す;改行は文字列から削除される | はい |
writeByte(byte) | 1バイトをファイルに書き込む | いいえ |
write(data, length) | length文字をdataからファイルに書き込む | いいえ |
writeLine(data) | "data"行をファイルに書き込み、改行を追加 | いいえ |
copyTo(newName) | 現在のファイルを "newname" にコピーし、そのコピーが成功したら true を返す | はい |
これらのコマンドの使用例を以下に示します:
f = new File(a.path + "/pressure.txt");
f.open(File.WriteOnly | File.Translate);
f.writeLine("Velocity, Pressure");
f.close();
この例の解説は以下の通りです:
次の行は "f" という名前のファイル オブジェクトを作成し、"pressure.txt" という名前を割り当てます。
f = new File("pressure.txt");
その後ファイルが開かれ、2 個の AccessMode 列挙子を使ってこのファイルが書き込み専用であることが示され、これが Windows (Translate 修飾子)で使用されます。
f.open(File.WriteOnly | File.Translate);
"Velocity" と "Pressure" という単語が列ヘッダとしてファイルに書き込まれます。
f.writeLine("Velocity, Pressure");
ファイルが閉じます。
f.close();