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

面试题 相关文章推荐
JAVA代码查错题
Oct 10 面试题
strstr()的简单实现
Sep 26 面试题
介绍一下HDLC(High-Level Data Link Control)高层数据链路协议
Jan 21 面试题
星空联盟C# .net笔试题
Dec 05 面试题
C#中有没有静态构造函数,如果有是做什么用的?
Jun 04 面试题
什么是符号链接,什么是硬链接?符号链接与硬链接的区别是什么?
Jan 19 面试题
在对linux系统分区进行格式化时需要对磁盘簇(或i节点密度)的大小进行选择,请说明选择的原则
Nov 24 面试题
几个Shell Script面试题
Apr 18 面试题
如何将无状态会话Bean发布为WEB服务,只有无状态会话Bean可以发布为WEB服务?
Dec 03 面试题
UNIX文件类型
Aug 29 面试题
Servlet如何得到客户端机器的信息
Oct 17 面试题
国外的一些J2EE面试题一
Oct 13 面试题
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常用函数汇总
2014/12/17 PHP
Laravel 5框架学习之表单验证
2015/04/08 PHP
PHP基于mcript扩展实现对称加密功能示例
2019/02/21 PHP
jquery text,radio,checkbox,select操作实现代码
2009/07/09 Javascript
Javascript 判断函数类型完美解决方案
2009/09/02 Javascript
js cookies实现简单统计访问次数
2009/11/24 Javascript
跨浏览器通用、可重用的选项卡tab切换js代码
2011/09/20 Javascript
jquery下checked取值问题的解决方法
2012/08/09 Javascript
jquery实现盒子下拉效果示例代码
2013/09/12 Javascript
jQuery.event兼容各浏览器的event详细解析
2013/12/18 Javascript
js使用for循环查询数组中是否存在某个值
2014/08/12 Javascript
node.js中使用socket.io制作命名空间
2014/12/15 Javascript
JavaScript获取当前网页最后修改时间的方法
2015/04/03 Javascript
jQuery简单实现图片预加载
2015/04/20 Javascript
JavaScript ParseFloat()方法
2015/12/18 Javascript
javascript弹出窗口中增加确定取消按钮
2016/06/24 Javascript
Node.js 数据加密传输浅析
2016/11/16 Javascript
Dropzone.js实现文件拖拽上传功能(附源码下载)
2016/11/22 Javascript
HTML5开发Kinect体感游戏的实例应用
2017/09/18 Javascript
nodejs 图片预览和上传的示例代码
2017/09/30 NodeJs
vue实现分环境打包步骤(给不同的环境配置相对应的打包命令)
2019/06/04 Javascript
微信小程序以7天为周期连续签到7天功能效果的示例代码
2020/08/20 Javascript
Python实现的下载8000首儿歌的代码分享
2014/11/21 Python
Python实现获取网站PR及百度权重
2015/01/21 Python
Python编程中用close()方法关闭文件的教程
2015/05/24 Python
对变量赋值的理解--Pyton中让两个值互换的实现方法
2017/11/29 Python
解决PySide+Python子线程更新UI线程的问题
2019/01/11 Python
Python实现的大数据分析操作系统日志功能示例
2019/02/11 Python
Python3实现的简单工资管理系统示例
2019/03/12 Python
Python3.7基于hashlib和Crypto实现加签验签功能(实例代码)
2019/12/04 Python
浅谈Python3实现两个矩形的交并比(IoU)
2020/01/18 Python
html5中canvas图表实现柱状图的示例
2017/11/13 HTML / CSS
维多利亚的秘密官方网站:Victoria’s Secret
2018/10/24 全球购物
2016年植树节红领巾广播稿
2015/12/17 职场文书
mysql配置SSL证书登录的实现
2021/09/04 MySQL
Nginx如何配置根据路径转发详解
2022/07/23 Servers