请问:
每当创建一个对象时就将这个对象序列化存储在一个文件中,可是当反序列化读取这些对象时,只能读取一个。如何才能全部读取。
(自己网上查了一些说每次序列化进去对象的时候都会有Header,要重写ObjectOutputStream,但是重写之后还一直报异常java.io.StreamCorruptedException: invalid s)
C#是可以的,这个是我封装的一个方法
public static List<T> JsonStrToModelList<T>(string str) where T : class
{
if (str != "" && str.Length > 5)
{
JavaScriptSerializer javaScriptSerializer = new JavaScriptSerializer();
List<T> modelList = javaScriptSerializer.Deserialize(str, typeof(List<T>)) as List<T>;
return modelList;
}
else { return null; }
}
谢谢 不过这个是C语言吗 我是个初学者 看不懂 麻烦可以用java写吗
@六点丶: 不好意思啊,我没有用过Java。我用的是C#,听说跟Java很多地方是一样的。
@德展自动化: 谢谢。那我再理解一下您的解答
@六点丶: 其实核心的就是这个
List<T> modelList = javaScriptSerializer.Deserialize(str, typeof(List<T>)) as List<T>;
如果序列化的不是集合对象:
T modelList = javaScriptSerializer.Deserialize(str, typeof(T)) as T;
我是为了使用方便将它封装成了一个泛型方法
@德展自动化: 你的意思是我直接反序列化一个集合到文件中吗