ruby 操作大文件

本人测试的ruby版本是ruby1.9.3p286 
首先我读取一个 100M 的1.txt文件
然后将它完全复制到另一个2.txt中,发现只能复制45736kb
代码主要部分如下:
puts "文件大小是:#{File.size(filepath)}字节"#文件再大它的大小还是能够正确的读出来的
 
while value = file.gets   
  file1.printvalue
end
那么我们怎么办才能全部复制过去呢?
其实很简单只要使用file.seek 就可以了
在 Ruby 中,IO类有如下三个常量用于指示从何处开始在 IO 流中搜寻数据:
SEEK_CUR:从当前位置开始
SEEK_END:从 IO 流末尾位置开始
SEEK_SET:从 IO 流起始位置开始(亦即”绝对位置“)
再配合 file.seek就可以了
我的修改后 额外增加的部分主要代码如下:
 seeklen =45736
 file2.seek(seeklen)
 file3 =File.open(filepath1,"a+")   #追加方式
 file3.puts""
 while value =file2.gets    
  file3.printvalue
 end
这就解决了
具体如何完整的应用请自己研究吧,这里只是提供个思路 ruby <wbr>操作大文件
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值