TCL支持文件處理使用內(nèi)置命令,如:open, read, puts, gets 和 close.
一個文件代表了一個字節(jié)序列,不要緊,如果它是一個文本文件或二進(jìn)制文件。
TCL使用open命令在Tcl中打開文件。打開文件的語法如下。
open fileName accessMode
在這里,文件名是字符串文字,用它來命名文件名,accessMode可以是以下值之一:
| 模式 | 描述 |
|---|---|
| r | 打開一個現(xiàn)有的文本文件讀取并且文件必須存在。這是沒有指定accessMode時使用的默認(rèn)模式。 |
| w | 打開用于寫入的文本文件中、,如果它不存在,則一個新文件創(chuàng)建,其他現(xiàn)有的文件將被截斷。 |
| a | 打開寫在追加模式,文件必須存在一個文本文件。在這里,程序?qū)㈤_始追加到現(xiàn)有的文件內(nèi)容的內(nèi)容。 |
| r+ | 打開用于讀取和寫入兩種的文本文件。文件必須已經(jīng)存在。 |
| w+ | 打開用于讀取和寫入兩種的文本文件。如果它存在首先截斷文件為零長度,否則創(chuàng)建該文件,如果它不存在。 |
| a+ | 打開用于讀取和寫入兩種的文本文件。它,如果它不存在,創(chuàng)建該文件。讀數(shù)將從頭開始,但寫只能追加。 |
要關(guān)閉一個文件,請使用close命令。close 的語法如下。
close fileName
當(dāng)程序完成使用該文件已被打開的一個程序中的任何文件都必須關(guān)閉。在大多數(shù)情況下,文件不需要被明確地關(guān)閉;它們會自動關(guān)閉,當(dāng)文件對象會自動終止。
puts命令用于寫入一個打開的文件。
puts $filename "text to write"
一個簡單寫入文件的例子如下所示。
#!/usr/bin/tclsh set fp [open "input.txt" w+] puts $fp "test" close $fp
當(dāng)上述代碼被編譯和執(zhí)行時,它創(chuàng)建根據(jù)目錄的新文件input.txt(在該程序的工作目錄)。
以下是簡單從文件中讀取的命令:
set file_data [read $fp]
讀與寫一個完整的例子如下所示。
#!/usr/bin/tclsh set fp [open "input.txt" w+] puts $fp "test" close $fp set fp [open "input.txt" r] set file_data [read $fp] puts $file_data close $fp
當(dāng)上述代碼被編譯和執(zhí)行時,它讀取在前面的部分創(chuàng)建的文件,并且產(chǎn)生以下結(jié)果:
test
下面是另一個例子讀取文件,文件一行一行直到結(jié)束。
#!/usr/bin/tclsh set fp [open "input.txt" w+] puts $fp "test\ntest" close $fp set fp [open "input.txt" r] while { [gets $fp data] >= 0 } { puts $data } close $fp
當(dāng)上述代碼被編譯和執(zhí)行時,它讀取在前面的部分來創(chuàng)建的文件,并且產(chǎn)生以下結(jié)果:
test test