byte[] file_buf = new byte[1024];
FileInputStream fis =new FileInputStream(...);int f_read =1;
while( f_read>0)
{
f_read = fis.read( file_buf, 0, 1024);
if( f_read>0)
{
// send out file_buf
}
}

解决方案 »

  1.   

    回Onega(www.fruitfruit.com)
    谢谢,有几个问题不清楚,还望指教:
    1.file_buff送出去之后,发送端会一直不停的读1024个字节然后不停的发,如果接收端还没有收到或处理完怎么办?2.如果不是在本机上而是在网络较差的环境中,会不会丢失数据?用Socket编写是不是就可以避免这个问题?因为我听说socket使用的TCP协议,而TCP有自动检测功能会自动重发.
      

  2.   

    回Arias(永恒之道):
    能不能将清楚一些,因为我现在只学了java.io包,还没有看java.nio.
    谢谢
      

  3.   

    用Socket
    配合多线程,一般都要这么做
      

  4.   

    使用TCP协议,它会保证客户端能够接受所有的数据,如果客户端比较慢,它会阻塞sender.
    TCP协议不会丢失数据
      

  5.   

    网上传用socket+流处理(暂时没有弄通)