简介
use Mojo::Asset::File;
# Temporary file
my $file = Mojo::Asset::File->new;
$file->add_chunk('foo bar baz');
say 'File contains "bar"' if $file->contains('bar') >= 0;
say $file->slurp;
# Existing file
my $file = Mojo::Asset::File->new(path => '/home/sri/foo.txt');
$file->move_to('/yada.txt');
say $file->slurp;
Mojo::Asset::File 是HTTP内容的文件存储。
事件
Mojo::Asset::File继承了Mojo::Asset中的所有事件。
属性
Mojo::Asset::File继承了Mojo::Asset中的所有属性,并实现了以下属性。
cleanup
my $bool = $file->cleanup;
$file = $file->cleanup($bool);
一旦文件不再被使用,就自动删除path所指定的文件。
handle
my $handle = $file->handle;
$file = $file->handle(IO::File->new);
根据path属性创建的文件句柄,如果path属性未定义则会基于tmpdir属性安全地自动生成。
path
my $path = $file->path;
$file = $file->path('/home/sri/foo.txt');
用于创建 handle属性的文件路径。
tmpdir
my $tmpdir = $file->tmpdir;
$file = $file->tmpdir('/tmp');
用于生成path属性的临时目录,默认为MOJO_TMPDIR环境变量的值。
方法
Mojo::Asset::File继承了Mojo::Asset中的所有方法,并实现了以下方法。
add_chunk
$file = $file->add_chunk('foo bar baz');
添加一块数据到文件中。
contains
my $position = $file->contains('bar');
检查文件中是否包含特殊的字符串。如果包含,则返回第一次发现字符串的位置,如果不包含则返回-1。
get_chunk
my $bytes = $file->get_chunk($offset);
my $bytes = $file->get_chunk($offset, $max);
从特定位置获取数据块(单位为字节),默认获取的最大数据块为131072(128KiB)。
is_file
my $bool = $file->is_file;
因为这个类生成的对象总是Mojo::Asset::File对象,所以这个方法总是返回true。
move_to
$file = $file->move_to('/home/sri/bar.txt');
将当前对象中的数据存储到指定的文件中。并禁用cleanup。
返回的对象指向移动到的目标文件。
mtime
my $mtime = $file->mtime;
文件的最后一次修改时间。
size
my $size = $file->size;
文件的尺寸(单位是字节)。
slurp
my $bytes = $file->slurp;
一次性从文件中读出所有数据。
网友评论