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

面试题 相关文章推荐
说出数据连接池的工作机制是什么?
Apr 19 面试题
函数只定义了一次, 调用了一次, 但编译器提示非法重定义了-什么问题?
Oct 03 面试题
SQL Server笔试题
Jan 10 面试题
广州品高软件.net笔面试题目
Apr 18 面试题
面向对象概念面试题(.NET)
Nov 04 面试题
Internet主要有哪些网络群组成
Dec 24 面试题
C#如何调用Windows程序打开一个文档
Dec 26 面试题
C#里面如何倒序排列一个数组的元素?
Jun 21 面试题
网上常见的一份Linux面试题(多项选择部分)
Sep 09 面试题
Python里面如何拷贝一个对象
Feb 17 面试题
Set里的元素是不能重复的,那么用什么方法来区分重复与否呢?
Aug 18 面试题
介绍一下Ruby中的对象,属性和方法
Jul 11 面试题
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 Array交叉表实现代码
2010/08/05 PHP
php多功能图片处理类分享(php图片缩放类)
2014/03/14 PHP
php通过array_merge()函数合并关联和非关联数组的方法
2015/03/18 PHP
PHP二进制与字符串之间的相互转换教程
2016/10/14 PHP
Joomla框架实现字符串截取的方法示例
2017/07/18 PHP
Laravel5.7 数据库操作迁移的实现方法
2019/04/12 PHP
js 居中漂浮广告
2010/03/21 Javascript
jquery下实现overlay遮罩层代码
2010/08/25 Javascript
关于jQuery参考实例 1.0 jQuery的哲学
2013/04/07 Javascript
JavaScript回调(callback)函数概念自我理解及示例
2013/07/04 Javascript
Javascript学习笔记之 对象篇(一) : 对象的使用和属性
2014/06/24 Javascript
JavaSacript中charCodeAt()方法的使用详解
2015/06/05 Javascript
JavaScript中的setMilliseconds()方法使用详解
2015/06/11 Javascript
Node+Express+MongoDB实现登录注册功能实例
2017/04/23 Javascript
jquery应用实例分享_实现手风琴特效
2018/02/01 jQuery
vue-cli配置环境变量的方法
2018/07/09 Javascript
vue、react等单页面项目部署到服务器的方法及vue和react的区别
2018/09/29 Javascript
微信小程序实现打卡日历功能
2020/09/21 Javascript
详解jQuery如何实现模糊搜索
2019/05/10 jQuery
使用Angular9和TypeScript开发RPG游戏的方法
2020/03/25 Javascript
Javascript中window.name属性详解
2020/11/19 Javascript
Python django使用多进程连接mysql错误的解决方法
2018/10/08 Python
使用python3实现操作串口详解
2019/01/01 Python
利用python和ffmpeg 批量将其他图片转换为.yuv格式的方法
2019/01/08 Python
给 TensorFlow 变量进行赋值的方式
2020/02/10 Python
Python下载网易云歌单歌曲的示例代码
2020/08/12 Python
Python连接mysql方法及常用参数
2020/09/01 Python
电信营业员自我评价分享
2014/01/17 职场文书
禁毒宣传活动总结
2014/08/26 职场文书
超市店庆活动方案
2014/08/31 职场文书
2015年化妆品销售工作总结
2015/05/11 职场文书
钱学森观后感
2015/06/04 职场文书
2015年国庆节演讲稿范文
2015/07/30 职场文书
入党积极分子培养联系人意见
2015/08/12 职场文书
Redis 操作多个数据库的配置的方法实现
2022/03/23 Redis
Elasticsearch 数据类型及管理
2022/04/19 Python