簡體   English   中英

Jruby用每種方法解壓縮類

[英]Jruby unzip class with each method

我試圖編寫一個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

但是代碼看起來真的很亂。 我真正想要的是一個可以使用的解壓縮類,但日志文件可能很大,因此將它們全部加載到內存中並不是一個好選擇。 理想情況下,它僅在每次觸發時才拉下一行

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

嘗試gem rubyzip具有更多ruby-sh API http://rubydoc.info/gems/rubyzip/1.1.0/frames

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM