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

面试题 相关文章推荐
华为的Java面试题
Mar 07 面试题
ORACLE第二个十问
Dec 14 面试题
SQL里面IN比较快还是EXISTS比较快
Jul 19 面试题
请解释一下webService? 如何用.net实现webService
Jun 09 面试题
请解释接口的显式实现有什么意义
May 26 面试题
Javascript如何发送一个Ajax请求
Jan 26 面试题
北京麒麟网信息技术有限公司网络游戏测试面试题
Sep 28 面试题
客服端调用EJB对象的几个基本步骤
Jan 15 面试题
用Java语言将一个键盘输入的数字转化成中文输出
Jan 25 面试题
Static Nested Class 和 Inner Class的不同
Nov 28 面试题
Java的类可以定义为Protected或者Private得吗
Sep 25 面试题
这76道Java面试题及答案,祝你能成功通过面试
Apr 16 面试题
Ruby如何实现动态方法调用
Nov 18 #面试题
介绍一下Ruby的特点
Jan 20 #面试题
JPA的优势都有哪些
Jul 04 #面试题
J2EE中的容器都包括哪些
Aug 21 #面试题
J2EE面试题
Mar 14 #面试题
J2EE包括哪些技术
Nov 25 #面试题
J2EE的优越性主要表现在哪些方面
Mar 28 #面试题
You might like
PHP 文件上传进度条的两种实现方法的代码
2007/11/25 PHP
php与php MySQL 之间的关系
2009/07/17 PHP
ajax 的post方法实例(带循环)
2011/07/04 PHP
php连接微软MSSQL(sql server)完全攻略
2016/11/27 PHP
php 三大特点:封装,继承,多态
2017/02/19 PHP
php检测mysql表是否存在的方法小结
2017/07/20 PHP
JavaScript 在线压缩和格式化收藏
2009/01/16 Javascript
IE与Firefox在JavaScript上的7个不同写法小结
2009/09/14 Javascript
jquery.validate使用攻略 第三部
2010/07/01 Javascript
nodejs微信公众号支付开发
2016/09/19 NodeJs
ReactNative页面跳转实例代码
2016/09/27 Javascript
微信小程序 网络请求(GET请求)详解
2016/11/16 Javascript
微信小程序 地图map详解及简单实例
2017/01/10 Javascript
jQuery插件HighCharts绘制的基本折线图效果示例【附demo源码下载】
2017/03/07 Javascript
shiro授权的实现原理
2017/09/21 Javascript
通过封装scroll.js 获取滚动条的值
2018/07/13 Javascript
react 兄弟组件如何调用对方的方法示例
2018/10/23 Javascript
vue 弹出遮罩层样式实例
2020/07/22 Javascript
Python3中的2to3转换工具使用示例
2015/06/12 Python
举例详解Python中threading模块的几个常用方法
2015/06/18 Python
Python及PyCharm下载与安装教程
2017/11/18 Python
Python跨文件全局变量的实现方法示例
2017/12/10 Python
Python中请不要再用re.compile了
2019/06/30 Python
python实现飞机大战游戏(pygame版)
2020/10/26 Python
python集合能干吗
2020/07/19 Python
Html5+JS实现手机摇一摇功能
2015/04/24 HTML / CSS
阿根廷网上配眼镜:SmartBuyGlasses阿根廷
2016/08/19 全球购物
AE美国鹰日本官方网站: American Eagle Outfitters
2016/12/10 全球购物
英国男女豪华配饰和礼品网站:Black.co.uk
2020/02/28 全球购物
门卫岗位职责
2013/11/15 职场文书
个人简历中自我评价
2014/02/11 职场文书
图书借阅制度范本
2015/08/06 职场文书
2016年离婚协议书范文
2016/03/18 职场文书
2016年中学法制宣传日活动总结
2016/04/01 职场文书
如何在C++中调用Python
2021/05/21 Python
PyCharm 配置SSH和SFTP连接远程服务器
2022/05/11 Python