【发布时间】:2011-07-06 10:18:02
【问题描述】:
如何在我的 Scala 程序中直接从压缩文件访问 XML 数据文件?是否有任何直接的方法可以以编程方式解压缩和读取我的 Scala 代码中的内容?
【问题讨论】:
如何在我的 Scala 程序中直接从压缩文件访问 XML 数据文件?是否有任何直接的方法可以以编程方式解压缩和读取我的 Scala 代码中的内容?
【问题讨论】:
以下是 2.8.1 中的几种方法:
cat > root.xml << EOF
<ROOT>
<id>123</id>
</ROOT>
EOF
zip root root.xml
然后在 REPL 中:
val rootzip = new java.util.zip.ZipFile("root.zip")
import collection.JavaConverters._
val entries = rootzip.entries.asScala
entries foreach { e =>
val x = scala.xml.XML.load(rootzip.getInputStream(e))
println(x)
}
或类似的东西:
val rootzip = new java.util.zip.ZipFile("root.zip")
import scala.collection.JavaConversions._
rootzip.entries.
filter (_.getName.endsWith(".xml")).
foreach { e => println(scala.xml.XML.load(rootzip.getInputStream(e))) }
【讨论】:
可以使用Java包java.util.zip:http://download.oracle.com/javase/6/docs/api/java/util/zip/package-summary.html
【讨论】:
我个人更喜欢TrueZip。它允许您将归档文件视为虚拟文件系统,提供与标准 Java 文件 I/O 相同的接口。
【讨论】: