1

所以,我的问题基本上有两个子问题。我想创建我的自定义文件类型,可能使用 UTF-8 编码。我想我只能通过使用我还不知道的将编码设置为 UTF-8 或任何适合的方法保存具有首选扩展名的文件来做到这一点。
我的扩展名是“.molb”。

现在,问题是我需要将 3d 对象(例如球体和圆柱体)写入该文件,并且当我打开文件时,需要以某种方式识别并添加到我的宇宙中。
一些文章建议序列化对象和使用 FileBuffers,但没有一篇文章真正帮助我理解如何将其应用于我自己的问题。

为了澄清起见,我将给出以下示例: 此图像 显示了一些对象(圆柱体和球体),它们应该以一种或另一种形式保存在文件中,因此当打开该文件时,这些对象会显示保存的属性(位置、颜色、方向等)。此外,我的文件将包含一个存储球体 xyz 位置的数组

4

1 回答 1

3

如果您的类实现Serializable,您可以非常简单地将它们写入文件。

DataOutputStream os = new DataOutputStream(new FileOutputStream("myfile.molb"));
os.writeObject(sphare);
os.close();

这个文件是二进制的。您不必关心编码。

但是,如果您想使用 XML、JSON 或其他文本格式序列化您的对象,您可能需要使用其他接受编码的构造函数打开带有 writer 的包装流:new OutputStreamWriter(new FileOutputStream("my.txt"), "UTF-8)"。您还必须添加一些注释(例如 JAXB 或 Jakson)以启用 object-to-xml(或 json)序列化。

于 2012-10-31T21:01:54.847 回答