0

在我的一次采访中,面试官给了我一个场景,我通过 FTP 获取一个文件,其中存储了订单信息,每个字段用逗号分隔。我需要使用Serialization将此信息存储在 Order 类的对象中。

文件格式:orderId,securityName,Buy/Sell,OrderType,Qty,Price

Class Order
{
    int orderId;
    String securityName;
    ....

}

我想在这里提一下,该文件是由其他应用程序生成的,我们必须使用该应用程序生成的文件。我很困惑我该怎么做,因为那里没有进行编组所以我如何解组数据?

4

2 回答 2

1
  1. 读取 CSV 文件以获取 Order 对象的列表。
  2. 使用序列化将包装对象存储在文件中。
于 2013-02-12T01:00:56.773 回答
0

从技术上讲,您将使用反序列化将文件数据存储到对象中。练习的重点是认识到您可以通过在类中实现以下方法来实现对象的自定义序列化/反序列化:

 private void writeObject(java.io.ObjectOutputStream stream)
     throws IOException;

private void readObject(java.io.ObjectInputStream stream)
     throws IOException, ClassNotFoundException;

在您的特定情况下,您将实现该readObject方法,从逗号分隔值文件中读取,并使用获得的值填充对象的实例。就像是:

class Order implements Serializable {
    private static final long serialVersionUID = -6730370200519884700L;

    // Instance variables, Constructors, Getters/Setters

    private void readObject(ObjectInputStream stream) {
        // obtain data from stream and use
    }
}

很明显,这是伪代码,但它应该让您知道从哪里开始。

于 2013-02-12T01:26:43.823 回答