如何在Java中实现serializableBufferedWriter?

时间:2012-07-18 10:20:40

标签: java serializable

我正在尝试延长java.io.BufferedWriter,因此请Serializable。我尝试简单地扩展BufferedWriter并实现Serializable接口。它有两个构造函数,所以代码看起来像这样。

class SerializableBufferedWriter extends BufferedWriter implements Serializable{
/**
 * 
 */
private static final long serialVersionUID = 1625952307886764541L;

public SerializableBufferedWriter(OutputStreamWriter osw, int size){
    super(osw, size);

}
public SerializableBufferedWriter(OutputStreamWriter osw){
    super(osw);

}

}

但是我在运行时得到一个无效的构造函数异常。在这里读到我之后,为了实现Serializable的类,它的第一个非可序列化的超类需要有一个无参数的构造函数。那么如何使用扩展BufferedWriter且由SerializableBufferWriter扩展的无参数构造函数在中间添加一个类?

非常感谢任何帮助

1 个答案:

答案 0 :(得分:3)

您可以执行的操作是存储要发送数据的文件名或URL。当您的应用程序重新加载此信息时,它会重新创建编写器。


你遇到的问题不仅仅是类,而且你想保留的所有字段都是Serializable。大多数流都不是Serializable,因此您需要为这些流进行自定义序列化。

  

那么如何使用扩展

的无参数构造函数在其间添加一个类

添加一个不带参数的构造函数。你需要使用构造函数的参数调用super,这是很难的部分。

您遇到的最大问题是您正在尝试序列化一些非设计为序列化的东西。