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

面试题 相关文章推荐
我的applet原先好好的, 一放到web server就会有问题,为什么?
May 10 面试题
运行时异常与一般异常有何异同?
Jan 05 面试题
定义一结构体数组表示分数,并求两个分数相加之和
Jun 11 面试题
经典c++面试题三
Jul 08 面试题
SQL面试题
Dec 09 面试题
应届生.NET方向面试题
May 23 面试题
linux面试题参考答案(3)
Sep 13 面试题
ShellScript面试题一则-ShellScript编程
Mar 05 面试题
Linux管理员面试题 Linux admin interview questions
Nov 01 面试题
UNIX命令速查表
Mar 10 面试题
Java servlet面试题
Mar 04 面试题
Delphi软件工程师试题
Jan 29 面试题
Ruby如何实现动态方法调用
Nov 18 #面试题
介绍一下Ruby的特点
Jan 20 #面试题
JPA的优势都有哪些
Jul 04 #面试题
J2EE中的容器都包括哪些
Aug 21 #面试题
J2EE面试题
Mar 14 #面试题
J2EE包括哪些技术
Nov 25 #面试题
J2EE的优越性主要表现在哪些方面
Mar 28 #面试题
You might like
使用Apache的htaccess防止图片被盗链的解决方法
2013/04/27 PHP
使用PHP导出Redis数据到另一个Redis中的代码
2014/03/12 PHP
用js计算页面执行时间的函数
2006/12/07 Javascript
javascript的对话框详解与参数
2007/03/08 Javascript
javascript 仿QQ滑动菜单效果代码
2010/09/03 Javascript
jquery ajax例子返回值详解
2012/09/11 Javascript
ajax的hide隐藏问题解决方法
2012/12/11 Javascript
Jquery性能优化详解
2014/05/15 Javascript
window.location的重写及判断location是否被重写
2014/09/04 Javascript
JQuery右键菜单插件ContextMenu使用指南
2014/12/19 Javascript
JavaScript中的slice()方法使用详解
2015/06/06 Javascript
jQuery 获取跨域XML(RSS)数据的相关总结分析
2016/05/18 Javascript
在javascript中使用com组件的简单实现方法
2016/08/17 Javascript
基于javascript实现的购物商城商品倒计时实例
2016/12/11 Javascript
微信小程序开发之圆形菜单 仿建行圆形菜单实例
2016/12/12 Javascript
jquery精度计算代码 jquery指定精确小数位
2017/02/06 Javascript
微信小程序之发送短信倒计时功能
2017/08/30 Javascript
详解vue-cli构建项目反向代理配置
2017/09/07 Javascript
基于Vue自定义指令实现按钮级权限控制思路详解
2018/05/23 Javascript
vue axios整合使用全攻略
2018/05/24 Javascript
使用Vue.js 和Chart.js制作绚丽多彩的图表
2019/06/15 Javascript
vue 重塑数组之修改数组指定index的值操作
2020/08/09 Javascript
在Vue 中获取下拉框的文本及选项值操作
2020/08/13 Javascript
[02:38]2018DOTA2亚洲邀请赛赛前采访-VGJ.T
2018/04/03 DOTA
python 获取本机ip地址的两个方法
2013/02/25 Python
Python socket C/S结构的聊天室应用实现
2014/11/30 Python
Python脚本实现DNSPod DNS动态解析域名
2015/02/14 Python
Jupyter加载文件的实现方法
2020/04/14 Python
Python如何读写字节数据
2020/08/05 Python
土木工程应届生求职信
2013/10/31 职场文书
教师党员自我剖析材料
2014/09/29 职场文书
群众路线剖析材料(四风)
2014/11/05 职场文书
建党伟业的观后感
2015/06/01 职场文书
2015年小学语文教师工作总结
2015/10/23 职场文书
建国70周年的心得体会(2篇)
2019/09/20 职场文书
公历12个月名称的由来
2022/04/12 杂记