起因:Object I/O stream带有Data I/O stream的大部分方法,而且功能更为强大,在使用Data I/O stream的大部分地方都是可以使用Object I/O stream的,又因为文本I/O是需要转码的,二进制I/O的效率比文本I/O的效率更高一些,而Object I/O 又带有今天例题里面需要的writeDouble() 等方法,我便用Object I/O stream 代替Data I/O stream,
运行结果:使用ObjectInputStream的 double radius = ois.readDouble (); 一直处于等待状态,没有接收到client用ObjectOutputStream write的值,导致程序在这里卡住,
如果client用Object Stream ,server用Data Stream 的话 client也会卡在创建流的步骤上,具体原因还没有搞懂,client和server都换成Data stream 问题就解决了.
结论:不是所有使用Data Stream的地方都可以用Object stream代替,以后的使用中需要注意.