Erlang之IO编程
2023-09-11 14:16:05 时间
Erlang用于操纵文件I/O的模块有:
file模块:打开、读、写、关闭文件已经操作目录的方法基本都在这里
filename模块:提供平台独立方式用于操纵文件名
filelib模块:file模块的扩展,提供了更多的实用工具,在file模块基础上构建
io模块:一系列用于操作打开的文件的方法,解析格式、格式化输出等等。
1.打开文件:
{ok,F}=file:open("data1.dat",read). %读模式打开
{ok,F}=file:open("data1.dat",write). %写模式
{ok,F}=file:open("data1.dat",[read,write]). %读、写、二进制模式
支持的所有模式参见文档。
2.读取:
(1)如果以一个Erlang term的方式读取,采用:
io:read(F,).
其中第二个参数是提示符,用于在标准输入时作为提示。
这个方法有一个变形read/3
read(IoDevice, Prompt, StartLine)
第三个参数用于指定开始行数。
(2)如果是按字节读取,文件必须按raw模式打开采用:
{ok, Data}=file:read(F,100).
(3)按行读取:
io:get_line(F, ).
(4)读取整个文件的内容:
{ok,Binary}=file:read_file("data1.dat").
注意返回的是一个binary类型
(5)随机读取:
{ok,Binary}=file:pread(F, 22, 46).
其中第二个参数是开始位置,第三个参数是读取的长度,返回的也是binary类型。
3.写入文件:
(1)采用io:format/3方法:
{ok, S} = file:open("test2.dat", write).
io:format(S, "~s~n", ["Hello readers"]).
io:format(S, "~w~n", [123]).
其中的~开头的字符是一个个格式化命令,比如常见的:
~c anscii码
~f 浮点数
~s 字符串
~w Erlang term
~p 与~w类似,不过当多行时将自动换行
~n 显然,换行符
(2)写入整个文件:
file:write_file(File, IO)
其中IO可以为list、integer或者binary类型
(3)随机写入:
file:pwrite(F, 10, "new" )
4.关闭文件:
file:close(F).
5.目录操作:
都是linux命令风格的操作,
cd("/home/dennis/"). %进入目录
file:list_dir("."). %列出当前目录文件
file:make_dir("test"). %创建test目录
file:del_dir("test"). %删除test目录
6.获取文件信息,比如文件大小,最后修改时间等等。调用file:read_file_info/1方法,该方法返回一个file_info记录类型,里面拥有文件的具体信息,比如type、size等。
{ok, Facts} =file:read_file_info(File).
io:format("~s~n",{Facts#file_info.type, Facts#file_info.size}).
7.复制和删除文件:
file:copy(Source, Destination).
file:delete(File).
这个笔记仅仅记录了一些常用到的方法,一些高级的工具方法并没有涉及,具体参考Erlang的文档。
文章转自庄周梦蝶 ,原文发布时间2007-09-27
java IO编程详解 java IO编程详解 一、Socket 1. Sock概述 Socket,套接字就是两台主机之间逻辑连接的端点。TCP/IP协议是传输层协议,主要解决数据如何在网络中传输,而HTTP协议是应用层协议,主要解决如何包装数据。Socket是通信的基石,是支持TCP/IP协议网络通信的基本单元。他是网络通信过程中端点的抽象表示,包含进行网络通信必须的五种信息:连接使用的协议、本地主机的IP地址、本地进程的协议端口、远程主机的IP地址、远程进程的协议端口。 2. Socket整体流程 Socket主要涉及到客户端
java编程之IO之File类及常用方法 Error和RuntimeException这一类的异常 运行时 javac编译的时候不检测 不需要主动添加处理异常的手段 当然我们愿意的话 也可以添加 除了上述以外其他的异常都需要做检测 要求我们必须添加处理异常的手段 编译不过去 处理异常的手段 try{}catch(){}finally{} 1.try不能单独出现 后面必须跟着其他的一个结构 catch或finally都可以 2.catch可以出现很多个 要么多个catch捕获的异常没有继承关系 要么先捕获小 再捕获大 3.final
IO和socket编程 第一次听到中间件这个名词是在人人的时候,那时候的中间件是基于ICE的,用C++写的。推荐几度人脉,新鲜事(feed流),antispam这些当时觉得最有技术含量的工作都包含在中间件里。但是这些东西都已经很成熟了,因为是C++写的,需要专人维护,但是维护的人平时又很闲,非常鸡肋。所以在C++的哥哥都离职之后,就用java改写了。改写之后用的是hessian协议了,就开始说RPC了,不讲ICE了。有些东西,错过了就是一辈子。
file模块:打开、读、写、关闭文件已经操作目录的方法基本都在这里
filename模块:提供平台独立方式用于操纵文件名
filelib模块:file模块的扩展,提供了更多的实用工具,在file模块基础上构建
io模块:一系列用于操作打开的文件的方法,解析格式、格式化输出等等。
1.打开文件:
{ok,F}=file:open("data1.dat",read). %读模式打开
{ok,F}=file:open("data1.dat",write). %写模式
{ok,F}=file:open("data1.dat",[read,write]). %读、写、二进制模式
支持的所有模式参见文档。
2.读取:
(1)如果以一个Erlang term的方式读取,采用:
io:read(F,).
其中第二个参数是提示符,用于在标准输入时作为提示。
这个方法有一个变形read/3
read(IoDevice, Prompt, StartLine)
第三个参数用于指定开始行数。
(2)如果是按字节读取,文件必须按raw模式打开采用:
{ok, Data}=file:read(F,100).
(3)按行读取:
io:get_line(F, ).
(4)读取整个文件的内容:
{ok,Binary}=file:read_file("data1.dat").
注意返回的是一个binary类型
(5)随机读取:
{ok,Binary}=file:pread(F, 22, 46).
其中第二个参数是开始位置,第三个参数是读取的长度,返回的也是binary类型。
3.写入文件:
(1)采用io:format/3方法:
{ok, S} = file:open("test2.dat", write).
io:format(S, "~s~n", ["Hello readers"]).
io:format(S, "~w~n", [123]).
其中的~开头的字符是一个个格式化命令,比如常见的:
~c anscii码
~f 浮点数
~s 字符串
~w Erlang term
~p 与~w类似,不过当多行时将自动换行
~n 显然,换行符
(2)写入整个文件:
file:write_file(File, IO)
其中IO可以为list、integer或者binary类型
(3)随机写入:
file:pwrite(F, 10, "new" )
4.关闭文件:
file:close(F).
5.目录操作:
都是linux命令风格的操作,
cd("/home/dennis/"). %进入目录
file:list_dir("."). %列出当前目录文件
file:make_dir("test"). %创建test目录
file:del_dir("test"). %删除test目录
6.获取文件信息,比如文件大小,最后修改时间等等。调用file:read_file_info/1方法,该方法返回一个file_info记录类型,里面拥有文件的具体信息,比如type、size等。
{ok, Facts} =file:read_file_info(File).
io:format("~s~n",{Facts#file_info.type, Facts#file_info.size}).
7.复制和删除文件:
file:copy(Source, Destination).
file:delete(File).
这个笔记仅仅记录了一些常用到的方法,一些高级的工具方法并没有涉及,具体参考Erlang的文档。
文章转自庄周梦蝶 ,原文发布时间2007-09-27
java IO编程详解 java IO编程详解 一、Socket 1. Sock概述 Socket,套接字就是两台主机之间逻辑连接的端点。TCP/IP协议是传输层协议,主要解决数据如何在网络中传输,而HTTP协议是应用层协议,主要解决如何包装数据。Socket是通信的基石,是支持TCP/IP协议网络通信的基本单元。他是网络通信过程中端点的抽象表示,包含进行网络通信必须的五种信息:连接使用的协议、本地主机的IP地址、本地进程的协议端口、远程主机的IP地址、远程进程的协议端口。 2. Socket整体流程 Socket主要涉及到客户端
java编程之IO之File类及常用方法 Error和RuntimeException这一类的异常 运行时 javac编译的时候不检测 不需要主动添加处理异常的手段 当然我们愿意的话 也可以添加 除了上述以外其他的异常都需要做检测 要求我们必须添加处理异常的手段 编译不过去 处理异常的手段 try{}catch(){}finally{} 1.try不能单独出现 后面必须跟着其他的一个结构 catch或finally都可以 2.catch可以出现很多个 要么多个catch捕获的异常没有继承关系 要么先捕获小 再捕获大 3.final
IO和socket编程 第一次听到中间件这个名词是在人人的时候,那时候的中间件是基于ICE的,用C++写的。推荐几度人脉,新鲜事(feed流),antispam这些当时觉得最有技术含量的工作都包含在中间件里。但是这些东西都已经很成熟了,因为是C++写的,需要专人维护,但是维护的人平时又很闲,非常鸡肋。所以在C++的哥哥都离职之后,就用java改写了。改写之后用的是hessian协议了,就开始说RPC了,不讲ICE了。有些东西,错过了就是一辈子。
相关文章
- Windows核心编程 第五章 作业(下)
- 在进程空间使用虚拟内存(Windows 核心编程)
- 网络编程----堵塞、非堵塞和同步、异步IO
- JAVA 编程中的SOLID设计原则
- 并发编程--计数器不同实现方案性能对比【synchronized、LongAdder、LongAccumulator、AtomicLong】
- 高性能网络编程2----TCP消息的发送
- 《C语言编程初学者指南》一2.8 用C做算术运算
- 《Linux C编程从入门到精通》》一导读
- IO 性能 $ iostat -kx 2$ vmstat 2 10$ mpstat 2 10$ dstat --top-io --top-bio
- Spring MVC 函数式编程进阶
- 编程三基:cpu:算法,总线(io):一切皆文件;内存:运行空间
- 周末没事干就看CSS JS Python ThinkPHP的书,照着例子运行就行,可以增强信心(还有QML,虚拟机运行Web。Windows核心编程,照着例子运行。没事看看socket和rest的例子和文档,还有POCO和BOOST。做自己感兴趣的虚拟机,研究5.0,SG2,BOX,CloudDisk)
- linux c 编程 ------ 程序入口参数,即 main 参数
- 【GDI+编程】--从三问开始
- 【蓝桥杯单片机组】两种外设访问方式:IO编程和MM编程
- JAVA编程思想(2) - 操作符(二)
- java核心编程——IO流
- swift网络编程入门应用:天气预报
- 学习笔记(36):Python网络编程&并发编程-IO模型介绍
- 学习笔记(16):Python网络编程&并发编程-开启子进程的两种方式