本章介绍file()函数的多种用法。
描述:
打开指定文件名的文件。
语法:
file( fn{:cs})
备注:
打开文件名为fn的文件
参数:
fn |
加载的文件名,可使用绝对路径或者相对路径。如果使用相对路径,则相对主目录,主目录为集算器选项菜单里配置的主目录,主目录缺省为当前目录(脚本文件打开的目录)。 |
cs |
字符集,支持的字符集是jvm自带的字符集。缺省则为操作系统默认值。 |
选项:
@s |
按照指定顺序搜索非绝对路径的文件名,搜索顺序为类路径-寻址路径-主目录,寻址路径为集算器选项菜单里配置的寻址路径,主目录缺省为当前目录。 返回结果为只读文件名称 |
@t |
在fn目录下产生临时文件。fn省略时在集算器选项菜单中的临时目录产生临时文件。临时目录为相对路径时,相对选项菜单里配置的主目录。 |
@a |
用于写的文件在发生共享冲突时会等待 |
@i |
读入文件产生内存文件对象,内存文件只读 |
返回值:
文件对象
示例:
file("D:/Area.txt":"UTF-8") |
加载位于D:\下的" Area.txt"文件,字符集为UTF-8 |
file("Area.txt") |
加载位于主目录下的" Area.txt"文件。 |
file@s("data/Area.txt") |
先搜索类路径,类路径中没有再搜索寻址路径列表,寻址路径中没有最后搜索主目录 |
file@t("data/Area.txt") |
在data/下产生临时文件 |
file@i("Area.txt") |
生成内存文件对象,只读 |
描述:
语法:
file( fn:cs,h)
备注:
返回分机h中的远程文件fn,文件可读可写,和本地文件相同。
参数:
fn |
加载的文件名,可使用绝对路径或者相对路径。如果使用相对路径,则相对主目录。 |
cs |
字符集,支持的字符集是jvm自带的字符集。缺省则为操作系统默认值。 |
h |
分机 |
返回值:
文件对象
示例:
|
A |
|
1 |
=file("D:/City.txt":"UTF-8",["192.168.46.1:8281"]) |
返回分机192.168.46.1:8281中D:/目录下的City.txt文件,字符集为UTF-8 |
2 |
=A1.import@t() |
读取文件内容 |
3 |
=file("tmp.txt",["192.168.31.165:8281"]) |
返回分机192.168.31.165:8281中主目录下的tmp.txt文件 |
4 |
>A3.write("hello word!") |
向文件中写入字符串"hello word!" |
描述:
从分机序列中返回远程文件。
语法:
file( fn:cs,hs)
备注:
返回分机序列hs中的远程文件fn,返回的文件只读;优先在本地寻找,本地找不到时根据分机序列成员顺序寻找。
参数:
fn |
加载的文件名,可使用绝对路径或者相对路径。如果使用相对路径,则相对主目录。 |
cs |
字符集,支持的字符集是jvm自带的字符集。缺省则为操作系统默认值。 |
hs |
分机序列 |
返回值:
文件对象
示例:
|
A |
|
1 |
=file("City.txt":"UTF-8",["192.168.46.1:8281","192.168.31.165:8281"]) |
从分机序列["192.168.46.1:8281","192.168.31.165:8281"]的主目录下查找City.txt文件返回,字符集为UTF-8 |
2 |
=A1.read() |
读取文件内容 |
描述:
通过组表文件返回带分表号的文件或文件组。
语法:
file(fn:z)
备注:
通过组表文件fn返回带分表号z的文件或文件组,文件名格式为z.fn,当z为整数时返回文件,当z为整数数列时返回文件组。
参数:
fn |
组表文件 |
z |
整数或整数数列 |
返回值:
组表文件名称或文件组对象
示例:
|
A |
|
1 |
=file("emp1.ctx":1) |
生成组表文件1.emp1.ctx |
2 |
=A1.create(#EID,NAME,SALARY;1) |
|
3 |
=file("emp.ctx":[2,3,4]) |
生成文件组,包含的文件分别为2.emp.ctx、3.emp.ctx、4.emp.ctx |
4 |
=A3.create(#EID,NAME,SALARY) |
|
描述:
语法:
file(fn:z,hs)
备注:
在分机hs中产生集群文件,z为分表号,当z为整数数列时产生集群组文件。
参数:
fn |
组表文件 |
z |
分表号,整数或整数数列 |
hs |
分机或分机序列 |
选项:
@w |
远程可写入文件,z和hs一一对应,z省略为to(hs.len()) |
返回值:
集群文件
示例:
|
A |
|
1 |
=file("emp.ctx",["192.168.31.165:8281"]) |
在分机中产生集群文件 |
2 |
=A1.open() |
打开集群表 |
3 |
=A2.memory() |
生成集群内表 |
4 |
=A2.close() |
关闭集群表 |
fn为文件组:
|
A |
|
1 |
=["192.168.126.1:8281","192.168.31.165:8281"] |
分机序列 |
2 |
=file("emCp.ctx":[2,3],A1) |
在分机中产生集群组文件 |
3 |
=A2.open() |
打开集群组文件 |
4 |
=A2.close() |
关闭集群组文件 |
远程写入组表文件:
|
A |
|
1 |
=["192.168.126.1:8281","192.168.31.165:8281"] |
分机序列 |
2 |
=file@w("emp.ctx":to(2),A1) |
在分机中产生集群组文件 |
3 |
=create(k1,v1).record([1,10,2,20,3,30,4,40,10,100]) |
返回序表 |
4 |
=A2.create(#k1,v1;if(k1<4,1,2)) |
创建复组表 |
5 |
=A4.append(A3.cursor()) |
将A3的数据追加到复组表A4中 |
描述:
用与集群组文件相同的分布生成新的集群组文件。
file(fn:z,f)
备注:
用与集群组文件f相同的分布生成新的集群组文件fn,z为分表号,z省略用f相同值。
参数:
fn |
新的集群组文件 |
z |
分表号,整数或整数数列 |
f |
集群组文件 |
返回值:
集群组文件
示例:
|
A |
|
1 |
=["192.168.126.1:8281","192.168.31.165:8281"] |
分机序列 |
2 |
=file("emCp.ctx":[2,3],A1) |
返回集群组文件 |
3 |
=file("embak.ctx",A2) |
生成与A2相同分布的集群组文件,参数z省略,默认与A2中相同,即[2,3] |