ERLANG学习 Day 8

对文件编程

库的组织结构:

1.file模块:在这个模块中包含了用于文件的打开,关闭,读取,写入和目录列表等功能的函数。

2.filename:此模块以平台独立的方式提供了一套操纵文件名的函数。可以达到在不同的操作系统中执行相同的操作。

3.filelib:这个模块是file模块的的扩展,提供了一套辅助函数用于生成文件列表、校验文件类型等操作。

4.io模块:这个模块提供了一系列对已经打开的文件进行操作的函数,这个模块中的函数可以用于对文件中数据的解析以及向文件中写入格式化的数据。 

data1.dat

{person, "joe","armstrong",
        [{occupation,programmer},
        {favoriteLanguage,erlang}]}.

{cat, {name,"zorro"},
        {owner,"joe"}}.

从文件中读取所有的Erlang数据项:

 file:consult(File)会假定File指定的文件中包含了一串Erlang的数据项,如果可以读取其中的所有数据项,就会返回{ok,[Term]};否则会返回{error,Reason}。

从文件的数据项中一次读取一项:

在上图使用如下命令:
@spec file:open(File,read) => {ok,IoDevice} ! error,Why}
        这个函数尝试以只读方式打开文件。如果它能打开该文件,则返回ok,IoDevice};否则
就返回{error,Reason}。IoDevice是一个用于访问文件的IO设备。
@spec io:read(IoDevice,Prompt) => [ok,Term] error,Why} eof
        从IoDevice里面读取Erlang数据项。如果IoDevice指定的是一个已打开文件,那么Prompt
参数会被忽略。如果我们使用io:read来从标准输入读取,Prompt只用来提供一个提示符。
@spec file:close(IoDevice) => ok ferror,Why}
        关闭IoDevice。

从文件中一次读取一行数据:

        io:get_line能够一次从文件中读取一行数据。io:get_line会不断的读取字符串,直到遇到一个行尾符或者文档结束符。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值