注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

@fc_lamp

关注Web应用解决方案MySql/PHP/Python一盏名为"飞川"的灯~

 
 
 

日志

 
 

ruby文件操作  

2011-11-10 17:35:00|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

#读取一行
File.open('D:\t.txt','r') do |f|
    while line = f.gets
        #puts line
    end
end

#读取整个文件
lines = File.readlines('D:\t.txt') #存入数组中
#puts lines

#写入数据
File.open('d:/testruby.txt','w') do |f|
    f.puts 'test99999';
    f.puts "ok come on" #这样会插入两行数据
end


#遍历目录 使用 Find模块
require 'find'
Find.find("D:/Ruby") do |f| #注意路是正斜线(windows路径不合法)
    type = case
        when File.file?(f) then 'File' #是不是文件
        when File.directory?(f) then 'Dir' #是不是目录
        else '?'
        end
    #puts "#{type}: #{f}"
end

#文件访问
f = File.new('D:/t.txt')
f.seek(2,IO::SEEK_SET) #访问位置
puts f.readline
=begin
IO::SEEK_CUR -  从当前位置加上第一个参数的位置开始(相对位置)。  
IO::SEEK_END -  从文件尾开始反向读取,位置是第一个参数的绝对值。
IO::SEEK_SET -  从第一个参数给定的位置开始(绝对位置)

IO::SEEK_CUR  ,IO::SEEK_END  ,IO::SEEK_SET 这三个参数是相对于第一个参数的。
如果使用 IO::SEEK_CUR,那就说明第一个参数给的位置是相对位置,真正的 seek 起始点应
该是第一个参数值+当前位置。如果使用 IO::SEEK_SET,那就说明第一个参数给的位置是
绝对位置,真正的 seek 起始点就是第一个参数值的位置。如果使用 IO::SEEK_END,说明要
从文件尾开始方向读取,seek 的起始点就是第一个参数值的绝对值,为什么要说是绝对值,
是因为在这种情况下,第一个参数要给定一个负整数。还有一个算法是用这个负整数+文件
的长度,结果值就是 seek 的起始点位置。
=end

  评论这张
 
阅读(161)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017