用ObjectInputStream和ObjectOutputStream就可以了。

解决方案 »

  1.   

    请问可以将它做为File对象来传输吗?
    答:应该不可以,File对象只是一个句柄。
    以二进制流来传输?
    可以,完全没有问题。
      

  2.   

    用ObjectInputStream和ObjectOutputStream
    对象次第读写,按 THINK IN JAVA 2的里面提到的方法做
      

  3.   

    File f = new File(...)不也是一个对象吗?为什么不可以
    我先试试二进制流的方式
      

  4.   

    study_body(珍惜每一天)兄弟说的不太准确。我补充一下:请问可以将它做为File对象来传输吗? 
    当然可以,因为File类继承了Serializable接口,是可序列化的。以二进制流来传输?
    可以,完全没有问题。总结,如果你要利用Socket传送文件,那么一般的方法是利用二进制流的方式传递。但是,如果你非要传对象也是可以的,关键要看你想做什么?(你没说具体作用)
    具体步骤是:1.用二进制传送到另一端的一个Temp目录下(自己却一个保证唯一性的名字),
                2.用ObjectStream把你的File对象序列化再传过去。(保证文件名对的上)。
    Done.不过我跟study_body(珍惜每一天)兄弟观点一致,觉得没必要这么做,不知道你想干什么。
      

  5.   

    to Norwaywoods() 
        非常感谢你的指点,不过我还是不太理解,虽然File对象实现了Serializable接口,能将File对象传递过去,能将File中的内容一起传递过去吗?可能我的理解有些问题,欢迎指点,说句实在话,自己有了两棵星,水平却是一个三角,唉,惭愧啊。
      

  6.   

    to study_body(珍惜每一天):
       “虽然File对象实现了Serializable接口,能将File对象传递过去,能将File中的内容一起传递过去吗?”你混淆了“File中的内容”这个概念, File对象的内容并不包括,真实文件的内容。这一点可以从JDK的原代码中获知。File对象仅仅存储关于一个文件的相关信息(例如文件名,等等!),这个文件可以根本不存在,可以说就是一个概念上的文件,而文件的内容是一大把的二进制,这两者是有区别。     所以我说的能够把File对象传过去是正确的,但是又是没有意义的!呵呵!(程序员就爱说这样的话)但是概念不能错!
      

  7.   

    非常感谢各位热心的人,我已经用流的方式搞定了。
    但只是单线程的,我会将之改为多线程的。
    还有些疑问:服务器的IP怎么配置,它必须放置在局域网的外部有真实IP吗?否则地址转换是自动完成还是要另外做点什么?
    请有实施经验的大师们指点一二。
      

  8.   

    to 楼主:
    按照楼主的意思,其实就是传二进制。这样的例子一抓一大把,你自己搜索一下吧。to study_body(珍惜每一天):对象序列化确实是个有趣的东西,建议多看点书。
      

  9.   

    to Norwaywoods() 
       多谢指点,呵呵。