2011-02-24 63 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