利用文件句柄进行输入输出
来源:互联网 发布:apk反编译java代码 编辑:程序博客网 时间:2024/04/29 00:11
利用文件句柄进行输入输出
文件句柄定义:程序与外部数据源之间的接口。这里的数据源可以是实际的文件,也可以是其他的输入手段,如:串行设备,网络连接或键盘。
文件句柄不同于标量变量,这一点要牢记。这是一个独立的一种数据类型,文件句柄在符号表typeglob中有它自己的槽。文件句柄是一个结构化的信息集合,用来描述实际的连接。
标准文件句柄:STDIN STDOUT STDERR
STDOUT STDERR的主要区别:STDERR不进行缓冲处理,这样能确保错误能及是被写出。
创建文件句柄:两种方法,一种是open函数,一种是用IO::module(特别是IO::File模块)
以下将具体谈一谈如何创建文件句柄:
open FD "file";
open(FD,"file");
以只读的方式打开文件file
文件的打开方式分为:读,写,添加,读更新,写更新,添加更新;
读方式是缺省的打开方式,符号为<
如:open FD,'<',"file";
open(FD,"<file")
写方式符号为>
添加 >>
读更新 +< 注意点:如果文件不存在的话,这个操作将会失败,如果文件存在,则从文件开始处进行读,同时可以使用写操作,在使用的过程中,可以结合seek函数定位文件指针,
#!/usr/bin/perl
open FD,"+<tabconver1t.pl";
$stdout=select FD;
seek(FD,0,0);
print "print this message in the head of this file\n";
select $stdout;
print "goodbye\n";
这样,tabconver1t.pl中的开始部分的内容就会被print的输出所替代掉了,此中的seek定位指针函数下一部分讲解。
写更新 +> 如果文件不存在的,则先创建,如果文件存在,文件中的内容就会掉失,然后写数据到文件中,同时也可以读后写入的数据。
添加更新 +>> 文件不存在,就创建之,存在可能读,也可以写,写的数据直接添加到文件的结尾部分,当然,我们可以用seek定位文件指针,这样就可以写数据到别的地方了。
关于文件打开方式的使用方面的注意点,最后不要和file结合使用,因为有的文件名中有<,>,+这样的符号,这样可能导致程序误解。因此这个在使用open的时候可以使用三个参数。
如:open MYHANDLE,'<',$file;
打开标准输入和标准输出的小知识。
open FD,'-';
open FD,'<';
打开标准输入。
可以在程序中另以下片段:
$file=get_filename();
open FILE,$file?$file:'-';
如果取文件名失败,这个就从标准输入中取数据。
open MYSTDOUT,'>-';
打开标准输出。
如果打开一个名为"-"的文件时,可以这样:
open FILE,'+<','-';
使用IO::File创建文件句柄
IO::模块家族包括:
IO::Dir IO::File IO::Handle IO::Pipe IO::Seekable IO::Socket
使用IO模快更方便定义接口,但是以消耗系统的性能为代价的。
use IO::File;
$fh=new IO::File;
$fh->open("> myfile");
$fh->autoflush(1);
$fh->print("Message...\n");
$fh->close();
- 利用文件句柄进行输入输出
- 利用输入输出流复制文件
- 用文件输入输出字节进行文件拷贝
- linux利用文件句柄恢复oracle数据
- f0211.cpp 利用文件输入输出流复制文件
- 非常规恢复数据库利用系统文件句柄恢复
- Perl语言入门笔记 第五章 输入与输出(标准输入输出,文件句柄,printf,die,say)
- 利用map文件进行debug
- 利用struts2进行文件下载
- 利用概要文件进行资源管理
- 利用哈夫曼树进行文件压缩
- 文件句柄
- 文件句柄
- 文件句柄
- 文件句柄
- 输入输出文件
- 输入输出文件
- 文件输入输出
- 美国作家出书披露谷歌退出中国内幕
- 利用org.apache.commons.net.ftp实现ftp下载,解决中文文件名乱码问题
- 中国Google网页快照可正常使用
- POI导出Excel文档
- 搜索引擎的Robots协议
- 利用文件句柄进行输入输出
- 3D 格式
- SetWindowsHookEx()详解
- 三月份国际搜索引擎市场占有率
- C# WinForm 多线程 应用程序退出的方法 结束子线程
- 关于VeryCD下载的关闭
- android适配各种分辨率的问题
- c# - 正则表达式 Regex 判断是否是Share路径或硬盘路径
- Qt 获取tableview的选中行数据