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

面试题 相关文章推荐
PHP开发工程师面试问题集锦
Nov 01 面试题
Sony C++笔试题
Mar 10 面试题
什么是事务?为什么需要事务?
Jan 09 面试题
.net笔试题
Mar 03 面试题
上海中网科技笔试题
Feb 19 面试题
某/etc/fstab文件中的某行如下: /dev/had5 /mnt/dosdata msdos defaults,usrquota 1 2 请解释其含义
Apr 11 面试题
一套比较完整的软件测试人员面试题
May 13 面试题
新媒传信软件测试面试题
Feb 24 面试题
简单叙述一下MYSQL的优化
May 09 面试题
金额转换,阿拉伯数字的金额转换成中国传统的形式如:(¥1011)-> (一千零一拾一元整)输出
May 29 面试题
请说出这段代码执行后a和b的值分别是多少
Mar 28 面试题
Servlet都有哪些方法?主要作用是什么?
Mar 04 面试题
Ruby如何实现动态方法调用
Nov 18 #面试题
介绍一下Ruby的特点
Jan 20 #面试题
JPA的优势都有哪些
Jul 04 #面试题
J2EE中的容器都包括哪些
Aug 21 #面试题
J2EE面试题
Mar 14 #面试题
J2EE包括哪些技术
Nov 25 #面试题
J2EE的优越性主要表现在哪些方面
Mar 28 #面试题
You might like
UCenter 批量添加用户的php代码
2012/07/17 PHP
PHP执行批量mysql语句的解决方法
2013/05/02 PHP
php 获取SWF动画截图示例代码
2014/02/10 PHP
php实现和c#一致的DES加密解密实例
2017/07/24 PHP
PHP判断是否微信访问的方法示例
2019/03/27 PHP
php简单检测404页面的方法示例
2019/08/23 PHP
thinkPHP3.2使用RBAC实现权限管理的实现
2019/08/27 PHP
基于jquery的loading效果实现代码
2010/11/05 Javascript
jquery的$getjson调用并获取远程的JSON字符串问题
2012/12/10 Javascript
JavaScript动态添加列的方法
2015/03/25 Javascript
node.js中 stream使用教程
2016/08/28 Javascript
Angular获取手机验证码实现移动端登录注册功能
2017/05/17 Javascript
Vue如何实现组件的源码解析
2017/06/08 Javascript
BackBone及其实例探究_动力节点Java学院整理
2017/07/14 Javascript
React Native中的RefreshContorl下拉刷新使用
2017/10/09 Javascript
JS实现利用两个队列表示一个栈的方法
2017/12/13 Javascript
Vue.js分页组件实现:diVuePagination的使用详解
2018/01/10 Javascript
vue-cli3.0配置及使用注意事项详解
2018/09/05 Javascript
浅谈JavaScript_DOM学习篇_图片切换小案例
2019/03/19 Javascript
ES6知识点整理之函数数组参数的默认值及其解构应用示例
2019/04/17 Javascript
vue父组件给子组件的组件传值provide inject的方法
2019/10/23 Javascript
javascript 设计模式之享元模式原理与应用详解
2020/04/08 Javascript
vue 实现图片懒加载功能
2020/12/31 Vue.js
[03:14]2014DOTA2西雅图国际邀请赛 EG战队巡礼
2014/07/07 DOTA
[01:06:42]VP vs NewBee Supermajor 胜者组 BO3 第二场 6.5
2018/06/06 DOTA
Python中的类与对象之描述符详解
2015/03/27 Python
python实现简单的socket server实例
2015/04/29 Python
将Emacs打造成强大的Python代码编辑工具
2015/11/20 Python
Python入门之三角函数sin()函数实例详解
2017/11/08 Python
Python实现图片裁剪的两种方式(Pillow和OpenCV)
2019/10/30 Python
python 通过exifread读取照片信息
2020/12/24 Python
Python调用高德API实现批量地址转经纬度并写入表格的功能
2021/01/12 Python
加拿大领先的冒险和户外零售商:Atmosphere
2017/12/19 全球购物
比较一下entity bean和session bean
2013/12/27 面试题
餐厅感恩节活动策划方案
2014/10/11 职场文书
房屋质量投诉书
2015/07/02 职场文书