uncompress and read gzip file in scala

后端 未结 1 1993
栀梦
栀梦 2020-12-16 02:41

In Scala, how does one uncompress the text contained in file.gz so that it can be processed? I would be happy with either having the contents of the file stored

1条回答
  •  旧巷少年郎
    2020-12-16 02:41

    Here's my version:

    import java.io.BufferedReader
    import java.io.InputStreamReader
    import java.util.zip.GZIPInputStream
    import java.io.FileInputStream
    
    class BufferedReaderIterator(reader: BufferedReader) extends Iterator[String] {
      override def hasNext() = reader.ready
      override def next() = reader.readLine()
    }
    
    object GzFileIterator {
      def apply(file: java.io.File, encoding: String) = {
        new BufferedReaderIterator(
          new BufferedReader(
            new InputStreamReader(
              new GZIPInputStream(
                new FileInputStream(file)), encoding)))
      }
    }
    

    Then do:

    val iterator = GzFileIterator(new java.io.File("test.txt.gz"), "UTF-8")
    iterator.foreach(println)
    

    0 讨论(0)
提交回复
热议问题