我正在尝试使用 JAVA 发送文件。我的问题是客户端永远不知道是否到达文件末尾。所以客户端的while循环永远不会结束。请帮我。
服务器(向客户端发送数据)
File myFile = new File("C://LEGORacers.exe");
      byte[] mybytearray = new byte[(int) myFile.length()];
      BufferedInputStream bis = null;
      OutputStream os = null;
        bis = new BufferedInputStream(new FileInputStream(myFile));
        bis.read(mybytearray, 0, mybytearray.length);
        os = socket.getOutputStream();      
        os.write(mybytearray, 0, mybytearray.length);       
        os.flush();
        bis.close();
客户端(从服务器获取数据)
byte[] buf = new byte[1024];
    InputStream is = null;
    int bytesRead = 0;
    is = client.getInputStream();
    FileOutputStream fos = null;
    fos = new FileOutputStream("C://copy.exe");
    BufferedOutputStream bos = new BufferedOutputStream(fos);
     try {
            while (-1 != (bytesRead = is.read(buf, 0, buf.length))) {
            // This while loop never ends because is.read never returns -1 and I don't know why...
                bos.write(buf, 0, bytesRead);
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
               is.close();
               bos.flush();
               bos.close();
               fos.close();
        }