我想把Socket类的对象序列化后存储
请问如何实现啊?
我想到继承:
public class MySocket extends Socket implements Serializable{
public MySocket() {
}
}
在其他地方:
MySocket client_socket = (MySocket)listen_socket.accept();
出现异常提示:java.lang.ClassCastException
请问怎么序列化Socket呢?
请问如何实现啊?
我想到继承:
public class MySocket extends Socket implements Serializable{
public MySocket() {
}
}
在其他地方:
MySocket client_socket = (MySocket)listen_socket.accept();
出现异常提示:java.lang.ClassCastException
请问怎么序列化Socket呢?
解决方案 »
- java中这个接口是个什么用法?
- java小小小问题
- 关于数据库查询 菜鸟求助
- 新人报道,并求问一个困扰多日的java程序访问数据库的问题。(速度超慢,DriverManager.getConnection()总需要5秒)
- java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] 语法错误 (操作符丢失)
- 如何从数据库中的DateTime型的数据,转化成java中对应的日期或时间数据类型后,得到这个数据的long值的后6位不是0。
- 测试的软件,类loadrunner for java ?
- 还有一个关于Dialog的奇怪问题。。。
- Oracle查询出现异常
- 高份请教:正规式和有穷自动机的转换的算法?
- string indexOf startWith contains 的效率,谁高谁低?
- 线程为何输出两次
序列化和反序列化是这样的 import java.io. * ; class tree implements java.io.Serializable {
public tree left;
public tree right;
public int id;
public int level; private static int count = 0 ; public tree( int depth) {
id = count ++ ;
level = depth;
if (depth > 0 ) {
left = new tree(depth - 1 );
right = new tree(depth - 1 );
}
} public void print( int levels) {
for ( int i = 0 ; i < level; i ++ )
System.out.print( " " );
System.out.println( " node " + id); if (level <= levels && left != null )
left.print(levels); if (level <= levels && right != null )
right.print(levels);
}
public static void main (String argv[]) { try {
/**/ /* 创建一个文件写入序列化树。 */
FileOutputStream ostream = new FileOutputStream( " tree.tmp " );
/**/ /* 创建输出流 */
ObjectOutputStream p = new ObjectOutputStream(ostream); /**/ /* 创建一个二层的树。 */
tree base = new tree( 2 ); p.writeObject(base); // 将树写入流中。
p.writeObject( " LiLy is 惠止南国 " );
p.flush();
ostream.close(); // 关闭文件。
/**/ /* 打开文件并设置成从中读取对象。 */
FileInputStream istream = new FileInputStream( " tree.tmp " );
ObjectInputStream q = new ObjectInputStream(istream); /**/ /* 读取树对象,以及所有子树 */
tree new_tree = (tree)q.readObject(); new_tree.print( 2 ); // 打印出树形结构的最上面 2级
String name = (String)q.readObject();
System.out.println( " \n " + name);
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
然后通过Socket传递这个类的对象
就可以实现串行化了