File Class

The File class is useful for reading and writing external text files.

AccessMode Enumerator

The File Class contains an enumerator that works with file.open to set the mode of a file when it is opened. These items are the argument for an “open” command, and are preceeded with the word “File”. The values are shown:

AccessMode values Description

ReadOnly

Opens the file as read-only

WriteOnly

Opens the file as write-only. If used with Append, the file is not truncated. If used on its own (or with Truncate), the file is truncated.

ReadWrite

Opens the file in read/write mode. Note that the file is not truncated.

Append

Opens the file in append mode. (WriteOnly must be used with it to make a file appendable: WriteOnly | Append) Useful for writing to a log file.

Truncate

Truncates the file

Translate

Enables carriage returns and line-feed translation for text files in Windows

To open a file object called “f” as write only, issue this command:

f.open(File.WriteOnly | File.Translate);

The Translate flag is needed for Windows files.

Static Functions

Unlike methods, static functions do not reference a specific object. To use any of these commands, precede it with “File.” This indicates that these functions are linked to the File class.

Static Functions Description

exists(filename)

Boolean: true if fileName exists; false if it does not (filename = string)

remove(filename)

If filename exists, will delete. If not, returns an exception (filename = string)

write(filename, content)

Writes content to the filename. This completely replaces original contents if the file already exists. Returns an exception if can’t write to file.

filename = string; content = string

read(filename)

Reads and returns the contents of the file, if possible. If not, returns an exception.

filename = string

isFile(filename)

Boolean: true if filename is a file; false if it is not

isDir(filename)

Boolean: true if filename is a directory; false if it is not

For example, to check if a file called “logfile.txt” exists, issue the command:

File.exists(“logfile.txt”);

File Class Properties

All properties in the File class are read only.

File Class Properties Type Description

name

String File name including the extension

path

String Path of the file

fullName

String The complete name of the file: path, name, and extension

baseName

String The name of just the file (no path or extension)

extension

String Extension of the file name

exists

Boolean True if the file exists; false if it does not

readable

Boolean True if the file can be read

writable

Boolean True if the file can be written

executable

Boolean True if the file can be executed

hidden

Boolean True if the file is hidden

eof

Boolean True if reading has reached the end of the file

created

Date Time of file creation

lastModified

Date Last time file was modified

lastRead

Date Last time file was read

size

Number Size of file; in bytes

File Class Methods

File Class Methods Description data return

new File(filename)

Creates a file object referencing file name; filename = string no

open(accessMode)

Opens the file using the named accessMode no

close()

Closes the file no

readByte()

Reads one byte from the file; Returns a number yes

read()

Returns the complete contents of the file as a string; if can’t read, returns an exception yes

readLine()

Reads one line from file if possible; returns an exception if can’t. Trailing whitespace is retained yes

readLines()

Returns contents of the file as an array of strings--one for each line; Linebreaks are stripped from strings yes

writeByte(byte)

Writes a byte to the file no

write(data, length)

Writes length number of characters from data to the file no

writeLine(data)

Writes the line “data” to the file, and adds a linebreak. no

copyTo(newName)

copies the current file to "newname" and returns true if the copy was successful yes

An example of using these commands is given:

f = new File(a.path + "/pressure.txt");

f.open(File.WriteOnly | File.Translate);

f.writeLine("Velocity, Pressure");

f.close();

A step-by-step explanation of this follows:

>>>The following creates a file object called f, and assigns the name “pressure.txt”.

f = new File("pressure.txt");

>>>The file is then opened, and two AccessMode enumerators are used to indicate that this file is write-only, and that it is used in Windows (the Translate modifier):

f.open(File.WriteOnly | File.Translate);

>>>The words “Velocity” and “Pressure” are written to the file to be used as column headers:

f.writeLine("Velocity, Pressure");

>>>The file is closed:

f.close();