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...

面试题 相关文章推荐
联想C++笔试题
Jun 13 面试题
请写一个C函数,若处理器是Big_endian的,则返回0;若是Little_endian的,则返回1
Jul 16 面试题
const char*, char const*, char*const的区别是什么
Jul 09 面试题
必须要使用游标的SQL语句有那些
May 07 面试题
不用游标的SQL语句有哪些
Sep 07 面试题
什么是命名空间(NameSpace)
Nov 24 面试题
中间件分为哪几类
Mar 14 面试题
Python文件操作的面试题
Jun 22 面试题
你在项目中用到了xml技术的哪些方面?如何实现的?
Jan 26 面试题
三个Unix的命令面试题
Apr 12 面试题
UNIX操作系统结构由哪几部分组成
Feb 17 面试题
如何定义一个可复用的服务
Sep 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
动漫女神老婆无限好,但日本女生可能就不是这么一回事了!
2020/03/04 日漫
总集篇&特番节目先行播出!《SAO Alicization War of Underworld》第2季度TV动画4月25日放送!
2020/03/06 日漫
PHP gbk环境下json_dencode传送来的汉字
2012/11/13 PHP
php ctype函数中文翻译和示例
2014/03/21 PHP
PHP将HTML转换成文本的实现代码
2015/01/21 PHP
php和editplus正则表达式去除空白行
2015/04/17 PHP
Thinkphp框架使用list_to_tree 实现无限级分类列出所有节点示例
2020/04/04 PHP
Riot.js 快速的JavaScript单元测试框架
2009/11/09 Javascript
鼠标移入移出事件改变图片的分辨率的两种方法
2013/12/17 Javascript
浅谈Javascript 数组与字典
2015/01/29 Javascript
angularjs创建弹出框实现拖动效果
2020/08/25 Javascript
JavaScript的this关键字的理解
2016/06/18 Javascript
Google 地图API Map()构造器详解
2016/08/06 Javascript
基于Jquery Ajax type的4种类型(详解)
2017/08/02 jQuery
基于ajax和jsonp的原生封装(实例)
2017/10/16 Javascript
基于vue.js中事件修饰符.self的用法(详解)
2018/02/23 Javascript
微信小程序—setTimeOut定时器的问题及解决
2019/07/26 Javascript
Python的math模块中的常用数学函数整理
2016/02/04 Python
python编程测试电脑开启最大线程数实例代码
2018/02/09 Python
python更改已存在excel文件的方法
2018/05/03 Python
如何让pre和textarea等HTML元素去掉滚动条自动换行自适应文本内容高度
2019/08/01 HTML / CSS
美国南部最大的家族百货公司:Belk
2017/01/30 全球购物
W Concept美国:精选全球独立设计师
2017/02/22 全球购物
世界闻名的衬衫制造商:Savile Row Company
2018/07/30 全球购物
美国打印机墨水和碳粉购物网站:QuikShip Toner
2018/08/29 全球购物
贝尔帐篷精品店:Bell Tent Boutique
2019/06/12 全球购物
美国购买舞会礼服网站:Couture Candy
2019/12/29 全球购物
解释DataSet(ds) 和 ds as DataSet 的含义
2014/07/27 面试题
易程科技软件测试笔试
2013/03/24 面试题
中国文明网签名寄语
2014/01/18 职场文书
低碳环保演讲稿
2014/08/28 职场文书
中学生纪念九一八事变演讲稿
2014/09/14 职场文书
2014年幼儿园教研工作总结
2014/12/04 职场文书
团代会开幕词
2015/01/28 职场文书
2015年师德表现自我评价
2015/03/05 职场文书
css中:last-child不生效的解决方法
2022/08/05 HTML / CSS