【问题标题】:How to read OSX .plist files from Java?如何从 Java 读取 OSX .plist 文件?
【发布时间】:2010-12-17 11:28:33
【问题描述】:

如何从 Java 中读取 OSX .plist files

【问题讨论】:

  • 提示:.plist 是一个 XML 文件。
  • 提示@karim79:不。在Mac上它也可以是二进制形式
  • 您应该向读者解释一下.plist 文件是什么。它是一个 Mac 文件,据我所知,它是当前版本的基于 XML 的格式。因此,只需使用 Java 内置的 XML 处理库来读取它。但也许你也应该说出你所说的“读取”是什么意思——只需将它放入内存,解析它,什么?
  • @jitter - 谢谢,我不知道!
  • 实际上从 Mac OS X 10.4 开始,.plist 文件的默认格式是二进制形式而不是 xml 形式

标签: java macos plist


【解决方案1】:

我猜你指的是从 Mac OS X 开始的 Mac 上使用的 plist 格式(而不是 NeXTSTEP 或 GNUstep 格式)。

  1. 确定文件是 XML 格式还是二进制格式
  2. 如果是二进制格式,请使用plutil 命令行实用程序将文件转换为 xml 格式
  3. 现在您有了 xml 格式的文件,使用任何 java-xml-library 来处理 plist

【讨论】:

  • 如果您正在寻找可在非 mac 平台上使用的实用程序,您可以查看 scw.us/iPhone/plutil。在 OS/X 和 linux 上工作正常,没有尝试 windows。
【解决方案2】:

恕我直言,从 Java 运行命令行工具并不是“完成这项工作的最佳方式”。

在 JAVA 中处理二进制 plist 有几种更好的方法:我更喜欢的是 Daniel Dreibrodt 的一个有用的小项目:google project hosting

您也可以使用Apache Commons Configuration(该 API 支持属性列表格式)。有关 OSX 上 .plist 格式历史的更多信息(哪个版本引入了哪种格式)我写在我的 blog

更新: 在 source forge 托管了一个名为 Property List Library 的新项目,它应该能够读写 .plist - 我还没有测试过,但听起来很有趣。

【讨论】:

    【解决方案3】:

    【讨论】:

    • xmlwise 不支持二进制 plist 格式,这实际上是 OS X 上的标准(“[Fatal Error] Info.plist:1:1: Content is not allowed in prolog”)
    【解决方案4】:

    你可以使用这个库:

    Property List Library (SourceForge)

    它将属性列表文件读取到对象,反之亦然。

    【讨论】:

      【解决方案5】:

      如今,Mac 上的 Java Preferences API 自动使用 plist 文件,并且它们是二进制格式。您可以通过读取“节点”上的首选项来自动读取 plist。

      希望对你有帮助。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-02-04
        • 1970-01-01
        • 1970-01-01
        • 2013-05-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多