Ruby Tip——读文件
2023-03-14 10:25:09 时间
Ruby如何简洁地读整个文件,你可以这样做:
f=File.open("test.log","r")
result=''
f.each_line do |line|
result+=line
end
puts result
但是,更简洁的方法是:result=''
f.each_line do |line|
result+=line
end
puts result
File.open("test.log","r"){ |f| f.collect.join}
利用了文件打开的IO对象混入了Enumerable模块这一特点,通过map或者collect将所有文件行放入一个数组,再join即可。
更正,其实更简介的方法是:
IO.read("test.log")
仅限于读文本文件。
这个tip的由来是我在读二进制文件的时候发现IO.read出来的大小与实际结果不符合,然后去尝试上文提到的这个方法,其实仍然是错误的。读二进制文件需要指定mode为b:
File.open("test.swf","rb")
文章转自庄周梦蝶 ,原文发布时间 2008-10-07
相关文章
- Erlang分布式在linux和windows上的注意事项
- Processing编程学习指南导读
- vi常用命令
- 嵌入式操作系统风云录:历史演进与物联网未来第2章 Chapter2
- 什么是 Docker?
- sicp 2.3小结习题尝试解答
- PHP异步的玩法
- 嵌入式操作系统风云录:历史演进与物联网未来Chapter3 第3章
- redhat9安装subversion手记
- ruby字符串String的一个trick
- 海量数据实时更新太慢?Lambda架构大法好!
- Pivotal 刘伟光:看待Docker 和 PaaS的正确视角
- 勾勒物联网与大数据的数据中心路线图
- 让ruby简化你的工作之blog阅读器
- 改了下rss-reader,支持atom了
- 嵌入式操作系统风云录:历史演进与物联网未来导读
- 如何设置一个基本的OpenLDAP Server
- 轻松搞定数据处理的五款Eclipse开源工具
- 云服务商靠什么颠覆传统CDN格局
- 从一个小例子出发之ruby、scheme和Erlang的简单比较