可以取到文件的大小和读取文件时的当前位置,应该就知道读取的进度了.

解决方案 »

  1.   

    当A和B建立Socket连接后,如果在A端我向Socket写入既有对象又有流的数据,那么,我在B端怎样改通过什么办法将这些对象和流都正确地读出来?或者有没有其他更好的办法?在A端的代码(其中SocketMsgInfo为一个Java对象):
    ObjectOutputStream oos = new ObjectOutputStream(_skt.getOutputStream());oos.writeObject("Welcome you!");
    oos.writeObject(new SocketMsgInfo("This is SocketMsgInfo"));
    oos.writeObject(new SocketMsgInfo("Transger is completed!"));FileInputStream fis = new FileInputStream("C:/PkgClnup.log");
    byte buf[] = new byte[64];
    int nReaded = 0;
    while((nReaded = fis.read(buf)) >= 0){
    oos.write(buf);
    }
    oos.flush();oos.writeObject(new SocketMsgInfo("Transger is completed!"));由于在该socket中既有对象又有流,所以我在B端使用readObject和read的方式来读取,即:
    try{
    while(ois.readObject()) ...
    }catch(Exception e){
    while(ois.read(buf)) ...
    }
    我是想先读出对象,在读流数据,但是,如果流数据后还有对象的话,就不能将该对象读出来了。因为方法read被阻塞了。