File
File object that provides file read/write, positioning and other operations.
close
Close the file and release associated resources.
close()Examples
Example of proper file operation workflow.
javascript
function main() {
let file = os.open("data.txt", "w")
file.write("Hello FMZ!")
file.close() // 必须关闭文件
}See Also
Remarks
This method must be called after using the file object to release system resources.
puts
Write one or more strings to a file.
puts(data1, data2, ...dataN)Examples
Write multiple strings to a file.
javascript
function main() {
let file = os.open("output.txt", "w+")
let bytes = file.puts("Hello", " ", "World", "!")
Log("Bytes written:", bytes) // Bytes written: 12
file.seek(0, 0)
let data = file.read()
Log("data:", data) // If using os.open("output.txt", "w") may result in data being undefined
// data: Hello World!
// file.puts() // error: puts requires at least 1 argument at main
file.puts(", Hello FMZ!")
file.seek(0, 0)
data = file.read()
Log("data:", data) // data: Hello World!, Hello FMZ!
file.close()
}Returns
| Type | Description |
number | Returns the actual number of bytes written. |
Arguments
| Name | Type | Required | Description |
data | string | Yes | String data to be written, multiple parameters can be passed. |
See Also
Remarks
Multiple string parameters can be written at once, they will be concatenated in order and then written.
printf
Write formatted data to file.
printf(format)
printf(format, arg1, arg2, ...argN)Examples
Write formatted trading data.
javascript
function main() {
let file = os.open("trade_log.txt", "w+")
let price = 100.25
let volume = 1000
let bytes = file.printf("Price: %.2f, Volume: %d\n", price, volume)
Log("Formatted bytes written:", bytes)
file.seek(0, 0)
let data = file.read()
Log("data:", data) // data: Price: 100.25, Volume: 1000
// file.printf("| Price: %.2f, Volume: %d\n") // "| Price: %!f(MISSING), Volume: %!d(MISSING)"
// file.seek(0, 0)
// data = file.read()
// Log("data:", data)
file.close()
}Returns
| Type | Description |
number | Returns the actual number of bytes written. |
Arguments
| Name | Type | Required | Description |
format | string | Yes | Format string. |
args | any (any type supported by the platform) | No | Format arguments. |
See Also
flush
Flush the file buffer to ensure data is written to disk.
flush()Examples
Write important log data in real-time.
javascript
function main() {
let logFile = os.open("critical.log", "a")
logFile.printf("[%s] Critical event occurred\n", new Date().toISOString()) // [2025-09-09T03:15:43.895Z] Critical event occurred
logFile.flush() // Immediately write data to disk
// Continue with other operations...
logFile.close()
}See Also
tell
Get the current file pointer position.
tell()Examples
Track position during file operations.
javascript
function main() {
let file = os.open("data.txt", "r+")
Log("Initial position:", file.tell()) // Initial position: 0
file.write("Hello")
Log("After write position:", file.tell()) // After write position: 5
file.close()
}Returns
| Type | Description |
number | Returns the current file pointer position (offset in bytes). |
See Also
Remarks
Returns the byte offset of the current file pointer relative to the beginning of the file.
seek
Move the file pointer to a specified position.
seek(offset, whence)Examples
Read characters in reverse order.
javascript
function main() {
let str = "Hello FMZ!"
let file = os.open("data.txt", "w+")
file.write(str)
// If i > str.length: will throw InternalError: seek .../xxx/data.txt: invalid argument at main
for (let i = 1; i <= str.length; i++) {
file.seek(-i, 2)
let data = file.read(1)
Log("i:", i, ", data:", data)
}
file.close()
}Returns
| Type | Description |
number | Returns the new file pointer position. |
Arguments
| Name | Type | Required | Description |
offset | number | Yes | Offset (in bytes). |
whence | number | Yes | Reference position: 0=beginning of file, 1=current position, 2=end of file. |
See Also
Remarks
Used to position the file pointer, the offset parameter can be negative (indicating backward movement).
eof
Check if the file pointer has reached the end of file.
eof()Examples
Read file line by line until end of file.
javascript
function main() {
let file = os.open("data.txt", "r")
let lineCount = 0
while (!file.eof()) {
let line = file.getline()
if (line) {
lineCount++
Log("Line", lineCount + ":", line)
}
}
Log("Total lines:", lineCount)
file.close()
}Returns
| Type | Description |
bool | Returns true if end of file has been reached, otherwise returns false. |
See Also
Remarks
Used to determine whether all content has been read when reading a file.
read
Read data from a file.
read()
read(size)Examples
Read file content in chunks.
javascript
function main() {
let file = os.open("data.txt", "r")
// data.txt
// This is a test line: Line 1.
// This is a test line: Line 2.
// ...
let chunkSize = 29
let totalBytes = 0
while (!file.eof()) {
let chunk = file.read(chunkSize)
if (chunk) {
totalBytes += chunk.length || chunk.byteLength
Log("Read chunk, total bytes so far:", totalBytes, ", chunk:", chunk)
}
}
file.close()
}Returns
| Type | Description |
string / ArrayBuffer / undefined | Returns the content read. Returns |
Arguments
| Name | Type | Required | Description |
size | number | No | Number of bytes to read. If not specified, reads all remaining content in the file. |
See Also
Remarks
Can read a specified number of bytes or all remaining content in the file. The return type may be string or ArrayBuffer.
write
Write string data to a file.
write(data)Examples
Writing trade records
javascript
function main() {
let file = os.open("trades.log", "a")
let timestamp = new Date().toISOString()
let tradeInfo = `${timestamp},BUY,50000,1\n`
let bytes = file.write(tradeInfo)
Log("Trade record written, bytes:", bytes)
file.close()
}Returns
| Type | Description |
number | Returns the actual number of bytes written. |
Arguments
| Name | Type | Required | Description |
data | string | Yes | The string data to be written. |
See Also
Remarks
Writes string data to the current position in the file.
getline
Read the next line from the file.
getline()Examples
Read file line by line until the end.
javascript
function main() {
let file = os.open("data.txt", "r")
let lineCount = 0
while (!file.eof()) {
let line = file.getline()
if (line) {
lineCount++
Log("Line", lineCount + ":", line)
}
}
Log("Total lines:", lineCount)
file.close()
}Returns
| Type | Description |
string / undefined | Returns the next line content, returns |
See Also
Remarks
Read file content line by line in sequential order.
toString
Get the string representation of the file object.
toString()Examples
Get the description information of the file object.
javascript
function main() {
let file = os.open("data/data.txt", "r")
Log("File info:", file.toString()) // File info: File(data/data.txt)
file.close()
}Returns
| Type | Description |
string | Returns the string description information of the file object. |
See Also
Remarks
Returns the description information of the file object.