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();