Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Jruby使用每个方法解压类_Java_Zip_Jruby_Each - Fatal编程技术网

Java Jruby使用每个方法解压类

Java Jruby使用每个方法解压类,java,zip,jruby,each,Java,Zip,Jruby,Each,我正在尝试编写一个JRuby脚本来解压和解析一堆归档的日志文件(每个日志都是一个zip文件)。它可以像这样很容易地实现 zipfile = java.util.zip::ZipFile.new(java.io::File.new(@zipfile)) entries = zipfile.entries while entries.hasMoreElements entry = entries.nextElement is = zipfile.getInputStream(entry)

我正在尝试编写一个JRuby脚本来解压和解析一堆归档的日志文件(每个日志都是一个zip文件)。它可以像这样很容易地实现

zipfile = java.util.zip::ZipFile.new(java.io::File.new(@zipfile))
entries = zipfile.entries

while entries.hasMoreElements
  entry = entries.nextElement
  is = zipfile.getInputStream(entry)
  bis = java.io::BufferedInputStream.new(is)
  br = java.io::BufferedReader.new(java.io::InputStreamReader.new(bis))
  while (line = br.readLine()) != nil
      /parsing line here/
    end
  end
end
但是代码看起来很混乱。我真正想要的是一个unzippers类,它可以像这样使用,顺便说一句,日志文件可能很大,所以在内存中加载它们不是一个好的选择。理想情况下,每次触发时,它只拉下一行

unzipped = Unzipper.new(zipped_log_file_name)
unzipped.each do |x|
    /parsing line here/
end

试试gem
rubyzip
——它有一个更为RubySh的API