全面剖析Ruby随机存取文件
创始人
2024-06-16 03:00:19
0

对于一个刚刚学习编程语言不久的朋友来说对于Ruby语言可能还是有些陌生的。它是一种新兴的解释型脚本语言。如果你想实现Ruby随机存取文件,你能够使用seek方法。#t#

它是File从Io继承而来的.它的最简单的使用就是指定一个字节位置.这个位置是相对于文件开始的位置(开始的位置是0):

 

  1. # myfile contains 
    only: abcdefghi   
  2. file = File.new("myfile")   
  3. file.seek(5)   
  4. str = file.gets# "fghi" 

如果你能确定每一行都是固定的长度,你就能seek指定的行进行Ruby随机存取文件:

 

  1. # Assume 20 bytes per line.   
  2. # Line N starts at byte (N-1)*20   
  3. file = File.new("fixedlines")   
  4. file.seek(5*20)# Sixth line!   
  5. # Elegance is left as an exercise. 

如果你想做一个相对的搜索,你就要使用第二个参数,常量 IO::SEEK_CUR表示当前的位置,而第一个参数则就是相对于当前位置的偏移量(可能是负数):

 

  1. file = File.new("somefile")   
  2. file.seek(55) # Position is 55   
  3. file.seek(-22, IO::SEEK_CUR)
     # Position is 33   
  4. file.seek(47, IO::SEEK_CUR)
    # Position is 80 

你也能从文件的结束位置开始Ruby随机存取文件:

 

  1. file.seek(-20, IO::SEEK_END)
     # twenty bytes from eof 

方法tell得到文件的当前位置,pos是它的别名:

 

  1. file.seek(20)   
  2. pos1 = file.tell # 20   
  3. file.seek(50, IO::SEEK_CUR)   
  4. pos2 = file.pos # 70  

rewind方法将会将文件指针的位置设回到开始的位置,也就是0.

以上就是Ruby随机存取文件的各种方法介绍,希望对大家有所帮助。

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...