代码之家  ›  专栏  ›  技术社区  ›  Roger

rubyj处理大量文件

  •  1
  • Roger  · 技术社区  · 16 年前

    我相信文件.foreach('输入文件')将一次读取一行文件。不过,我无法对这方面的任何文档进行罚款。有人能证实吗?

    我还想创建一个巨大的文件来测试文件.forach以及文件.open. 如果文件真的很大那么文件.open如果失败文件.foreach应该会成功。有人知道什么妙招可以快速创建一个巨大的文件吗?

    更新:

    f = File.open('input.txt')
    a = f.readlines
    
    f = File.open('input.txt')
    a = f.get
    
    f = File.open('input.txt')
    f.each_line{ |s| puts s}
    
    2 回复  |  直到 16 年前
        1
  •  1
  •   ennuikiller    16 年前

    文件.foreach(“file”)将为文件中的行创建一个枚举器,所以是的,它执行您认为它应该执行的操作。为了快速创建一个大文件,请使用以下命令(这将创建一个1 GB的文件,如果需要更大的文件,可以更改count参数):

    dd if=/dev/random of=myfile.dat bs=$(( 1024 * 1024  )) count=1000
    
        2
  •  0
  •   Telemachus MrJames    16 年前

    没有什么特别的原因 open 打开 只打开一个文件(用于读取、写入或附加)。它不会立即将文件读入内存。

    关于I/O的Ruby文档,我将从这里开始:

    http://ruby-doc.org/core/classes/IO.html

    推荐文章