* 文件操作 * (文件open.pl)
- 名词解释(仅适用于本文件)
- filehandle 文件句柄,用于存放文件的唯一标示符
- expr 文件名和文件访问模式做成的表达式
- mode 文件访问类型
- perm 访问权限位
文件打开方式(四种)
open filehandle,expr open filehandle sysopen filehandle,filename,mode,perm sysopen filehandle,filename,mode
- open方式的访问模式
- < 或 r 只读方式打开,文件指针指向文件头
- > 或 w 写入方式打开,文件指针指向文件头,文件不存在创建之
- >> 或 a 写入方式打开,文件指针指向文件尾,文件不存在创建之
- +< 或 r+ 读写方式打开,文件指针指向文件头
- +> 或 w+ 读写方式打开,文件指针指向文件头,文件不存在创建之
- +>> 或 a+ 读写方式打开,将文件指针指向文件尾
- open方式举例
perl
#只读方式
open(DATA,"<file.txt") or die "文件不存在,无法打开!";
#写入方式
open DATA,">file.txt" or die "文件无法打开";
#仅写入追加
open DATA,">>file.txt" or die "文件无法打开";
#读写追加
open DATA,"+>>file.txt" || die "文件无法打开";
- sysopen方式的访问模式
- O_RDWR 读写方式打开,指针指向文件头部
- O_RDONLY 只读方式打开,指针指向文件头部
- O_WRONLY 写入方式打开,指针指向文件头
- O_CREAT 创建文件
- O_APPEND 追加文件
- O_TRUNC 将文件大小截为0
- O_EXCL 测试文件是否存在
- O_NONBLOCK 非阻塞I/O要么操作成功,要么立即返回错误,不被阻塞
- sysopen方式举例
perl
#只读方式打开
sysopen DATA,"file.txt",O_RDONLY;
#更新文件前清空文件
sysopen DATA,"file.txt",O_RDWR|O_TRUNC;
- close函数
close (filehandle); - 操作符
- 标量上下文中,用,从文件句柄中返回单一行
- 操作文件时,返回文件句柄中每一行的列表
- getc函数
getc filehandle; 从指定的文件句柄中返回单一的行,没指定返回STDIN - read函数
perl
read filehandle,scalar,length,offset;
read filehandle,scalar,length;
- scalar 存储结果;length 读取的内容长度;offset 偏移量
- print函数
print filehandle list;
print list;
- 文件拷贝
open DATA1,"<file1.txt";
open DATA2,">file2.txt";
while(<DATA1>){
print DATA2 $_;
}
close(DATA1);
close(DATA2);
- 文件重命名
- rename 原名 更改的名字;
- 只能对已存在的文件进行重命名
- 删除文件
- unlink(路径);
- 指定文件位置
perl
tell filehandle; 用于获取文件位置
seek();移动文件指针的位置来写入或读取文件
seek filehandle,position,whence
- position 文件指针需要移动的字节数
- 文件指针的其实位置,0,1,2分别表示开头,当前位置,结尾