フリーの ECMAScript インタプリタ。 
Java で記述された JavaScirpt インタプリタ。
 
 
言語拡張 - FileIO
FileIO 拡張は、対話式インタプリタでは必ず読み込まれるもので、 ファイル機能へのアクセスを提供します。 FileIO の仕組みは Netscape の File オブジェクト (サーバ版の JavaScript で 利用できます) に似せていますが、Java のファイルおよびストリームの機能に近く なるようにしてあります。現在ではテキストファイルのみがサポートされています。 Microsoft JScript の入出力機構は ActiveX に基づいており、非常に Windows 独自の ものであるため、ポータブルな ECMAScript 実装のための汎用モデルには 適していません。

FESI の File オブジェクトは Java の File オブジェクトに 対応しており、(ファイルを開くと) Stream に関連付けられます。 File オブジェクトはファイル操作 (削除や移動など) と入出力操作の 両方に使われます。エラーは、特別な値が返されることで、 さらに関数 error によって検知できます。エラー文字列は 例外の名前 (パッケージ名は前につきません) にコロンと空白、テキストを 続けたものです。これは Netscape が使っているエラーコードよりも ポータブルです。
 

File オブジェクトのコンストラクタ

File オブジェクトは、関数 File("パス名")File("ディレクトリ名","ファイル名")、 あるいはそれらに対応するコンストラクタによって生成されます。 ディレクトリも File オブジェクトにできます。 File オブジェクトのデフォルト値はそのパス名の文字列表現です。
 

File プロトタイプの関数

以下のルーチンが File プロトタイプオブジェクトで実装されており、 File オブジェクトで使うことができます (ただし 有効に使えるのはオブジェクトが正しい状態のときです)。
readAll()
ファイルを開き、テキストをすべて読み込んでファイルを閉じ、読み込んだテキストを 単独の文字列として返します。エラー発生時は null を返します。readAll が 呼ばれた時点でファイルが開かれていてはいけません
open()
ファイルがあれば読込み用に開き、なければ書込み用に開きます。 成功すれば true を返します。新しいファイルを生成するには、open を呼ぶ前に (remove() で) 削除しておけば大丈夫です。
close()
ファイルを閉じ、成功すれば true を返します。
isopened()
ファイルが開かれていれば (EOF であっても) true を、そうでなければ false を 返します。
write(...)
引数を文字列としてファイルに書き込み、成功すれば true を返します。
writeln(...)
引数を文字列としてファイルに書き込んで改行し、成功すれば true を 返します。
flush()
書込み用に開かれた出力バッファをフラッシュし、成功すれば true を 返します。
readln()
入力ファイルから 1 行読み込みます。ファイル終端やエラーの場合は null を 返します。 ファイル終端かエラーの状態なのかを調べる場合は error() ルーチンを使うと 便利でしょう。
eof()
ファイルが終端になっているか、 そのファイルが読込み用に開かれたものでない場合に true を返します。 ファイルが読込み用に開かれたものでない場合はエラーが設定されます。
exists()
ファイルが存在すれば (開かれていてもいなくても) true を返します。
isFile()
ファイルが存在して、かつ (ディレクトリでない) 通常のファイルであれば true を 返します。
isDirectory()
ファイルが存在して、かつディレクトリであれば true を返します。
list()
ディレクトリ内のファイルやディレクトリの一覧を文字列の配列として返します。 ただしその File オブジェクトがディレクトリを表したものでない場合は null を返します。
mkdir()
その File オブジェクトのパスで指定されたディレクトリやディレクトリ群が まだ存在していなければ作成します。ディレクトリ作成に成功すれば true を、 それ以外の場合は false を返します。
getLength()
ファイルの長さを返します。存在しない場合は 0 を返します。
lastModified()
ファイルの最終更新日時を返します。 ファイルが存在しない場合は 1970 年 1 月 1 日が返されます。
remove()
ファイルを削除し、成功の場合は true を返します。delete が ECMAScript の 予約語なので remove という名前が使われています。
renameTo("new name")
ファイルを対象の名前に変えます。対象は File オブジェクトか文字列が使用でき、 成功すると true を返します。
canRead()
ファイルが存在して、かつ読込み可能であれば true を返します。
canWrite()
ファイルが存在して、かつ書込み可能であれば true を返します。
getPath()
構築時に与えられたパスを返します。toString() と同じです。
getAbsolutePath()
ファイルの完全なパス名を返します。
isAbsolute()
パスが絶対指定であれば true を、それ以外の場合は false を返します。
getName()
パスのファイルコンポーネント部を返します。
getParent()
ファイルのディレクトリ部あるいはディレクトリの親ディレクトリを返します。 ルートディレクトリ (Windows ではドライブごと) に対して実行された場合は 空文字列を返します。
error()
この File オブジェクト上で、オブジェクトが生成されてから、あるいは clearError が呼ばれてから最後に起こったエラーの文字列を返します。 エラーが検知されていない場合は空文字列 (false と同等) を返します。
clearError()
エラーインジケータをクリアします。
toString()
構築時に与えられたパスを返します。getPath() と同じです。
valueOf()
TBD。
 

File オブジェクトのプロパティ

File オブジェクト自体が次の属性を持ちます。
 
separator
パス区切子。例えば Windows ではバックスラッシュ (訳注: 日本語環境では円記号) です。
stdin
標準入力です。
stdout
標準出力です。
stderr()
標準エラー出力です。
標準の入出力ストリームは、名前を変えたり閉じたりできません。他の操作にも 実行不能なものや無視されるものがあるかもしれません。

メインページに戻る

最終更新日 (原文): 1998 年 6 月 17 日
(翻訳): 1999 年 4 月 1 日