【发布时间】:2014-06-04 04:31:05
【问题描述】:
我正在尝试序列化此 Configuration 对象,但我一生都无法得到它。我检查了所有地方,包括 StackOverflow。任何帮助将不胜感激。
序列化代码:
public void serialize(String outFile)
throws IOException {
Configuration config = new Configuration().getConfiguration();
System.out.println(config.email);
try
{
FileOutputStream outputFile =
new FileOutputStream("/home/jason/Desktop/config.ser");
ObjectOutputStream objectOutput = new ObjectOutputStream(outputFile);
objectOutput.writeObject(config);
objectOutput.close();
outputFile.close();
}catch(IOException i)
{
i.printStackTrace();
}
System.out.println(config);
}
public void deSerialize()
throws FileNotFoundException, IOException, ClassNotFoundException {
Configuration config = new Configuration().getConfiguration();
try
{
FileInputStream inputFile = new FileInputStream("/home/jason/Desktop/config.ser");
ObjectInputStream objectInput = new ObjectInputStream(inputFile);
config = (Configuration) objectInput.readObject();
config.setConfiguration(config);
objectInput.close();
inputFile.close();
}catch(Exception e)
{
e.printStackTrace();
}
System.out.println(config);
}
然后我用以下代码调用它:
DataStore data = new DataStore().getInstance();
try {
data.deSerialize();
} catch (ClassNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
DataStore 是一个简单的单例,不接受输入参数。它没有任何真正的变量,只是使用了序列化函数。
最后,这是我的配置代码:
public class Configuration implements Serializable{
private static final long serialVersionUID = 1388190376766023647L;
public static String email = "";
private static String ip = "";
private static String password = "";
private static String importNumber;
private static Configuration configuration;
private static int singleton = 0;
public String value_of_da_message;
public Configuration()
{}
public Configuration getConfiguration()
{
if(singleton == 0){
configuration = new Configuration();
singleton++;
return configuration;
}
else
return configuration;
}
public void setConfiguration(Configuration config)
{
configuration = config;
}
关于我哪里出错的任何线索?感谢您的帮助。
【问题讨论】:
-
可能是一个愚蠢的问题,但必须问,因为你还没有展示它:你确实实现了
Serializable接口,不是吗? -
哦,很好。但是是的,我已经实现了。
-
"无法序列化我的对象" 当您尝试时会发生什么?您是否看到任何异常/错误?您也没有向我们展示您是如何声明
Configuration类的。 -
不。没有错误或异常。简单地忽略我的序列化。我已经测试过它是否正确序列化,并且确实如此。所以我认为问题出在反序列化或配置期间。我会补充一点!编辑:添加它
-
我不应该序列化配置吗?
标签: java serialization