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

面试题 相关文章推荐
如何打开WebSphere远程debug
Oct 10 面试题
金讯Java笔试题目
Jun 18 面试题
New delete 与malloc free 的联系与区别
Feb 04 面试题
三维科技面试题
Jul 27 面试题
程序集与命名空间有什么不同
Jul 25 面试题
西安启天科技有限公司网络工程师面试题笔试题
Jun 12 面试题
Does C# support multiple inheritance? (C#支持多重继承吗)
Jan 04 面试题
string = null 和string = ''的区别
Apr 28 面试题
Windows和Linux动态库应用异同
Jul 28 面试题
是否可以从一个static方法内部发出对非static方法的调用?
Aug 18 面试题
什么是封装
Mar 26 面试题
Hibernate持久层技术
Dec 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
DOM XPATH获取img src值的query
2013/09/23 PHP
php生成短域名函数
2015/03/23 PHP
php实现转换ubb代码的方法
2015/06/18 PHP
PHP设置进度条的方法
2015/07/08 PHP
PHP代码优化技巧小结
2015/09/29 PHP
PHP模糊查询技术实例分析【附源码下载】
2019/03/07 PHP
浅谈Laravel模板实体转义带来的坑
2019/10/22 PHP
Laravel中GraphQL接口请求频率实战记录
2020/09/01 PHP
关于 文本框默认值 的操作js代码
2012/01/12 Javascript
解决javascript:window.close()在chrome,Firefox下失效的问题
2013/05/07 Javascript
Javascript alert消息换行的方法
2013/08/07 Javascript
js css后面所带参数含义介绍
2013/08/18 Javascript
AJAX跨域请求json数据的实现方法
2013/11/11 Javascript
js实现按钮加背景图片常用方法
2014/11/01 Javascript
jQuery实现弹出窗口中切换登录与注册表单
2015/06/05 Javascript
JS中改变this指向的方法(call和apply、bind)
2016/03/26 Javascript
BootStrap 智能表单实战系列(十)自动完成组件的支持
2016/06/13 Javascript
Canvas + JavaScript 制作图片粒子效果
2017/02/08 Javascript
jQuery md5加密插件jQuery.md5.js用法示例
2018/08/24 jQuery
JS中验证整数和小数的正则表达式
2018/10/08 Javascript
JavaScript实现公告栏上下滚动效果
2020/03/13 Javascript
基于vue和bootstrap实现简单留言板功能
2020/05/30 Javascript
Python中zip()函数的简单用法举例
2019/09/02 Python
完美解决jupyter由于无法import新包的问题
2020/05/26 Python
pycharm进入时每次都是insert模式的解决方式
2021/02/05 Python
html5的canvas实现3d雪花飘舞效果
2013/12/27 HTML / CSS
详解html5页面 rem 布局适配方法
2018/01/12 HTML / CSS
美国知名的摄影器材销售网站:Adorama
2017/02/01 全球购物
来自全球大都市的高级街头服饰:Pegador
2018/01/03 全球购物
工作表扬信的范文
2014/01/10 职场文书
电工工作职责范本
2014/02/22 职场文书
买卖车协议书
2014/04/21 职场文书
大学生通用个人自我评价
2014/04/27 职场文书
文明演讲稿范文
2014/05/12 职场文书
2014保险公司个人工作总结
2014/12/09 职场文书
我们的节日中秋节活动总结
2015/03/23 职场文书