2011-02-24 59 views
11

我已經花了好幾個小時的時間搜索一些東西,讓我可以在Scala中打開Zip文件(我知道你可以使用Java API,但我希望找到一個適合它的Scala友好包裝,而不是寫作緩衝/的FileInputStream等等)scala.tools.nsc包的用途是什麼?

所以我只是搞亂在REPL,發現這個包

scala.tools.nsc.io.ZipArchive 

在這之後一些挖掘和利用這一scala.tools.nsc.io.File,我設法打開zip存檔與所有的斯卡拉niceness(能夠foreach等)

事情是我看不到任何官方Scala 2.8.1 API文檔中提到的這個包,所以我只是想知道爲什麼沒有關於它的文檔?它是什麼?

+1

這個包是編譯器API的一部分,而不是標準庫。你總是可以使用'java.util.zip'包。 – axel22 2011-02-24 09:04:52

+5

順便說一句,'nsc'代表新的Scala編譯器AFAIK。 – michid 2011-02-24 09:48:56

+0

雖然我並不十分喜歡你使用'java.util.zip'的方式,但你只需要編寫樣板代碼就可以打開一個zip文件。 (例如,我可以編寫 'val zipf = tools.nsc.io.ZipArchive.fromFile(tools.nsc.io.File(「myzip.zip」)) )' 並獲得一個功能非常豐富,適合斯卡拉友好操作的對象! – djhworld 2011-02-24 10:55:45

回答

9

該軟件包包含與編譯器相關的類。它主要用於(據我所知)插件創建。由於它與Scala編譯器有關,我不確定它是哪一個「穩定」包,它在Scala版本之間可能有多少變化,所以要小心。

+0

謝謝。我不認爲你知道任何類似於我想要的東西的Scala實現?像第三方庫 - 我不介意它只是標準java.util.zip包的包裝 – djhworld 2011-02-24 13:20:30

+1

對不起,但是如果你找到一個貼吧!我也會這樣做 :) – 2011-02-24 14:18:14