Tcl在内置命令open,read,puts,gets和close的帮助下支持文件处理.
文件表示一个字节序列,如果它是无关紧要的是一个文本文件或二进制文件.
Tcl使用open命令打开Tcl中的文件.打开文件的语法如下 :
open fileName accessMode
此处,文件名是字符串文字,您将使用它来命名文件, accessMode 可以使用以下值之一 :
Sr.No. | 模式&说明 |
---|---|
1 | r 打开现有文本文件以进行读取,文件必须存在.这是没有指定accessMode时使用的默认模式. |
2 | w 打开要写入的文本文件,如果它不存在,则创建一个新文件否则现有文件被截断. |
3 | a 打开文本文件以便以附加模式写入,文件必须存在.在这里,您的程序将开始在现有文件内容中附加内容. |
4 | r+ 打开文本文件以进行读写.文件必须已存在. |
5 | w+ 打开文本文件以进行读写.如果它存在,它首先将文件截断为零长度,否则创建文件(如果它不存在). |
6 | a+ 打开一个文本文件,用于读写.如果文件不存在,它将创建该文件.读数将从头开始,但只能附加写入. |
要关闭文件,请使用close命令. close的语法如下 :
close fileName
程序完成使用该文件后,必须关闭程序打开的任何文件.在大多数情况下,不需要明确关闭文件;当File对象自动终止时,它们会自动关闭.
Puts命令用于写入打开的文件.
puts $filename "text to write"
写一个简单的例子文件如下所示.
#!/usr/bin/tclsh set fp [open "input.txt" w+] puts $fp "test" close $fp
编译并执行上述代码时,会创建在其下启动的目录中的新文件 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
当以上代码被编译和执行,它读取上一节中创建的文件并产生以下结果 :
test
这是另一个逐行读取文件直到文件结尾的例子;
#!/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
编译并执行上述代码时,它会读取上一节中创建的文件,产生以下结果 :
test test