我觉得是你的输入输出流使用优点混乱,程序逻辑应该没有问题,dataoutputstream是一个数据过滤流,适合于传输基本数据类型和一些特定数据类型。网络传输过程中,如果不知道具体数据类型,最好使用原始字符流,你可以换做其他一些字符流试试,注意各种类的write和read方法的返回值

解决方案 »

  1.   

    有谁知道怎么才能实现文件的传输,可否用FileInputStream in=new FileInputStream(file);
    DataOutputStream out=new DataOutputStream(new BufferedOutputstream(connect.getOutputStream(new FileInputStream(file))));
    其中connect是一个socket
      

  2.   

    发送端:
          DataInputStream fs = new DataInputStream(new FileInputStream(filename));
          OutputStream out=connection.getOutputStream();      int len=0;
          byte[] c_write=new byte[1024];
          int current=0;      while((len=fs.read(c_write))>0){
            out.write(c_write,0,len);
          }
    接收端:
          InputStream br_socket = connection.getInputStream();
          DataOutputStream out_file=new DataOutputStream
              (new FileOutputStream(filename));
          int y = 0;
          byte f[] = new byte[1024];      while (y=br_socket.read(f))!=-1){
            out_file.write(f, 0, y);
          }
      

  3.   

    现在能收得到吗?在什么位置有Exception吗?“数组可否用vecket代替,inputstream不能用inputstream.read(vecket)”,vecket是什么?y=br_socket.read(f),读入字节到f中,同时得到字节长度