Я новичок в Scala, и у меня есть небольшая задача, которая требует от меня распаковки *.gz file
из каталога resources
.Поэтому я хочу, чтобы это был правильный способ, чтобы иметь возможность анализировать содержимое файла после.Конечно, я читал некоторые статьи в прошлом, такие как: ONE TWO THREE
Я могу анализировать содержимое файла, который не был архивирован, но не могуобращаться с архивом gz прямо сейчас.Похоже, мне не хватает чего-то маленького, так как я новичок в Java и в Scala.
Версия Scala - 2.21.0
У меня есть часть моего коданиже:
object ResourceLoader {
def loadResource(fileName: String): Try[InputStream] = Try(getClass.getResourceAsStream(fileName))
def loadResource(fileName: String): Try[List[String]] =
for {
resourceStream <- loadResource(fileName)
resourceContent = Source.fromInputStream(resourceStream).getLines.toList
} yield resourceContent
}
Затем я могу перебрать неархивированный файл, например:
val content = ResourceLoader.loadResourceContent("/test_text.csv") recover {
case e: FileNotFoundException => println(s"Requested file not found: $e")
case e: SecurityException => println(s"Permission denied: $e")
case e: Exception => println(s"An unknown exception occurred: $e")
}
content.foreach(println)
Но не могу понять, как сначала распаковать архив gz, а затем перебрать его.
Я ожидаю использовать GZIPInputStream вместо getResourceAsStream в функции loadResource, но не могу понять, как это сделать правильно.
Заранее благодарю за любую помощь!