您的位置 首页

ruby 操作大文件

本人测试的ruby版本是ruby1.9.3p286  首先我读取一个 100M 的1.txt文件 然后将它完全…

本人测试的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>操作大文件

此文章通过 python 爬虫创建,原文是自己的csdn 地址: ruby 操作大文件

本文来自网络,不代表找知博客立场,转载请注明出处:http://zhaozhiyong.cn/134.html

作者: 于老大

关注微博
返回顶部
//