将Java 3d对象写入自定义文件类型

时间:2012-10-31 20:49:52

标签: java serialization encoding binary java-3d

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

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

为了澄清,我将举出以下例子: This image 在文件中显示应该以某种形式或其他形式保存的一些对象(圆柱体和球体),因此当打开该文件时,对象将显示已保存的属性(位置,颜色,方向等)。此外,我的文件将包含一个存储球体xyz位置的数组

1 个答案:

答案 0 :(得分:3)

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

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

此文件是二进制文件。您不必关心编码。

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