Ruby如何进行文件操作


Posted in 面试题 onJuly 17, 2014
Ruby使用File类来操作文件,可以通过File.new来创建一个File类的实例并打开这个文件。
file = File.new(“testfile”, “r”)
# … process the file
file.close
testfile是想要操作的文件名,”r”说明了文件的操作模式为读取。可以使用”w”表示写入,”rw”表示读写。

最后要记得关闭打开的文件,确保所有被缓冲的数据被写入文件,所有相关的资源被释放。

也可以使用File.open来打开文件,open和new的不同是open可以使用其后的代码块而new方法则返回一个File类的实例。
File.open(“testfile”, “r”) do |file|
# … process the file
end

open操作的另一个优点是处理了异常,如果处理一个文件发生错误抛出了
异常的话,那么open操作会自动关闭这个文件,下面是open操作的大致实现:
class File
def File.open(*args)
result = f = File.new(*args)
if block_given?
begin
result = yield f
ensure
f.close
end
end
return result
end
end

对于文件的路径,Ruby会在不同的操作系统间作转换。例如,在Windows下,/ruby/sample/test.rb会被转化为\ruby\sample\test.rb。当你使用字符串表示一个Windows下的文件时,请记住使用反斜线先转义:
“c:\\ruby\\sample\\test.rb”
也可以使用File::SEPARATOR表示不同系操作统的路径分割符。

Tags in this post...

面试题 相关文章推荐
你所知道的集合类都有哪些?主要方法?
Dec 31 面试题
int *p=NULL和*p= NULL有什么区别
Oct 23 面试题
视图的作用
Dec 19 面试题
程序员机试试题汇总
Mar 07 面试题
string = null 和string = ''的区别
Apr 28 面试题
init进程的作用
Apr 12 面试题
shell程序中如何注释
Feb 17 面试题
linux面试题参考答案(11)
May 01 面试题
EJB的激活机制
Oct 25 面试题
Python如何实现单例模式
Jun 03 面试题
Vector, ArrayList, HashTable, HashMap哪些是线程安全的,哪些不是
Oct 12 面试题
Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型
Oct 30 面试题
Ruby如何实现动态方法调用
Nov 18 #面试题
介绍一下Ruby的特点
Jan 20 #面试题
JPA的优势都有哪些
Jul 04 #面试题
J2EE中的容器都包括哪些
Aug 21 #面试题
J2EE面试题
Mar 14 #面试题
J2EE包括哪些技术
Nov 25 #面试题
J2EE的优越性主要表现在哪些方面
Mar 28 #面试题
You might like
mysql建立外键
2006/11/25 PHP
PHP爆绝对路径方法收集整理
2012/09/17 PHP
探讨:web上存漏洞及原理分析、防范方法
2013/06/29 PHP
php中使用gd库实现远程图片下载实例
2015/05/12 PHP
基于php实现的php代码加密解密类完整实例
2016/10/12 PHP
php遍历替换目录下文件指定内容的方法
2016/11/10 PHP
农历与西历对照
2006/09/06 Javascript
通过Unicode转义序列来加密,按你说的可以算是混淆吧
2007/05/06 Javascript
jQuery解决iframe高度自适应代码
2009/12/20 Javascript
用按钮控制iframe显示的网页实现方法
2013/02/04 Javascript
浅析return false的正确使用
2013/11/04 Javascript
js实现通用的微信分享组件示例
2014/03/10 Javascript
Bootstrap每天必学之表格
2015/11/23 Javascript
微信小程序 图片等比例缩放(图片自适应屏幕)
2016/11/16 Javascript
jQuery插件ImgAreaSelect实现头像上传预览和裁剪功能实例讲解一
2017/05/26 jQuery
jQuery Validate表单验证插件实现代码
2017/06/08 jQuery
详解vue.js的事件处理器v-on:click
2017/06/27 Javascript
详解JavaScript的数据类型以及数据类型的转换
2019/04/20 Javascript
JavaScript实现世界各地时间显示
2020/09/07 Javascript
electron踩坑之remote of undefined的解决
2020/10/06 Javascript
JavaScript中的Proxy对象
2020/11/27 Javascript
[01:53]2016完美“圣”典风云人物:Maybe专访
2016/12/05 DOTA
python dict remove数组删除(del,pop)
2013/03/24 Python
让Python代码更快运行的5种方法
2015/06/21 Python
python基础_文件操作实现全文或单行替换的方法
2017/09/04 Python
Python文件如何引入?详解引入Python文件步骤
2018/12/10 Python
python树莓派红外反射传感器
2019/01/21 Python
Python sublime安装及配置过程详解
2020/06/29 Python
美国床垫和床上用品公司:Nest Bedding
2017/06/12 全球购物
《满井游记》教学反思
2014/02/26 职场文书
我的中国梦演讲稿500字
2014/08/19 职场文书
2014年学校国庆主题活动方案
2014/09/16 职场文书
教师对照四风自我剖析材料
2014/09/30 职场文书
千与千寻观后感
2015/06/04 职场文书
SQLServer2019 数据库的基本使用之图形化界面操作的实现
2021/04/08 SQL Server
海贼王十大潜力果实,路飞仅排第十,第一可毁世界(震震果实)
2022/03/18 日漫