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 面试题
实现strstr功能,即在父串中寻找子串首次出现的位置
Aug 05 面试题
我能否用void** 指针作为参数, 使函数按引用接受一般指针
Feb 16 面试题
NULL是什么,它是怎么定义的
May 09 面试题
什么是事务?事务有哪些性质?
Mar 11 面试题
STP协议的主要用途是什么?为什么要用STP
Dec 20 面试题
如何选择使用结构还是类
May 30 面试题
用Python写一个for循环的例子
Jul 19 面试题
介绍一下Python下range()函数的用法
Nov 07 面试题
Java程序开发中如何应用线程
Mar 03 面试题
中间件的定义
Aug 09 面试题
IBatis持久层技术
Jul 18 面试题
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 mssql 时间格式问题
2009/01/13 PHP
php session 检测和注销
2009/03/16 PHP
PHP学习之数组的定义和填充
2011/04/17 PHP
PHP中ltrim与rtrim去除左右空格及特殊字符实例
2016/01/07 PHP
Yii 2.0如何使用页面缓存方法示例
2017/05/23 PHP
JavaScript 组件之旅(二)编码实现和算法
2009/10/28 Javascript
深入认识javascript中的eval函数
2009/11/02 Javascript
Jquery Ajax解析XML数据(同步及异步调用)简单实例
2014/02/12 Javascript
返回函数的JavaScript函数
2016/06/14 Javascript
JavaScript实现星级评分
2017/01/12 Javascript
Angularjs+bootstrap+table多选(全选)支持单击行选中实现编辑、删除功能
2017/03/27 Javascript
angular之ng-template模板加载
2017/11/09 Javascript
详解如何实现一个简单的 vuex
2018/02/10 Javascript
用element的upload组件实现多图片上传和压缩的示例代码
2019/02/12 Javascript
微信小程序日历弹窗选择器代码实例
2019/05/09 Javascript
JavaScript实现页面中录音功能的方法
2019/06/04 Javascript
如何实现iframe父子传参通信
2020/02/05 Javascript
[08:44]和酒神一起战斗 DOTA2教你做大人
2014/03/27 DOTA
[02:56]DOTA2亚洲邀请赛 VG出场战队巡礼
2015/02/07 DOTA
python单例模式实例分析
2015/04/08 Python
Python3的urllib.parse常用函数小结(urlencode,quote,quote_plus,unquote,unquote_plus等)
2016/09/18 Python
Python学习小技巧之列表项的推导式与过滤操作
2017/05/20 Python
基于python requests库中的代理实例讲解
2018/05/07 Python
Python开发网站目录扫描器的实现
2019/02/21 Python
python写程序统计词频的方法
2019/07/29 Python
python给图像加上mask,并提取mask区域实例
2020/01/19 Python
python matplotlib imshow热图坐标替换/映射实例
2020/03/14 Python
vscode调试django项目的方法
2020/08/06 Python
一个非常简单好用的Python图形界面库(PysimpleGUI)
2020/12/28 Python
详解Django关于StreamingHttpResponse与FileResponse文件下载的最优方法
2021/01/07 Python
HTML5+CSS3实例 :canvas 模拟实现电子彩票刮刮乐代码
2016/12/30 HTML / CSS
西安众合通用.net笔试题
2013/03/18 面试题
小区消防演习方案
2014/02/21 职场文书
工伤赔偿协议书范本
2014/04/15 职场文书
Python中常见的反爬机制及其破解方法总结
2021/06/10 Python
详解使用内网穿透工具Ngrok代理本地服务
2022/03/31 Servers