各位大哥帮小弟看看为什么这个Client接到文件不能删除呢?
可以删除或者改名,但是一删除马上就会被恢复,到底是怎么回事呢,而且被恢复之后的文件是不能再删除的也不能访问,注销或者重启之后这个文件就不见了******************
Server.java
******************
import java.net.*;
import java.io.*;public class Server {
  private Socket sock=null;
  final static private int BUFFER=1024;
  public Server() {
    try{
      ServerSocket serverSock=new ServerSocket(18080);
      byte[] buf=new byte[BUFFER];
      int num;
      while(true){
        sock=serverSock.accept();
        OutputStream out=sock.getOutputStream();
        BufferedInputStream bis=new BufferedInputStream(new FileInputStream("fileSocket/roman.avi"),BUFFER);
        while((num=bis.read(buf))!=-1){
        //  System.out.println("SI:" + num);
          if(num<BUFFER){
            byte[] wbuf = new byte[num];
            for (int i = 0; i < num; i++) {
              wbuf[i] = buf[i];
            }
          }
          out.write(buf);
        }
        out.close();
        bis.close();
      }
    }catch(Exception e){
      e.printStackTrace();
    }
  }  public static void main(String[] arg){
    Server s=new Server();
  }
}*********************
Client.java
*********************
import java.net.*;
import java.io.*;
import java.util.Date;public class Client {
  final static private int BUFFER=1024;
  public Client() {
    try{
     Date start = new Date();
      Socket sock = new Socket("127.0.0.1", 18080);
      InputStream in = sock.getInputStream();
      FileOutputStream fos=new FileOutputStream("fileSocket/copy.avi");
      int num=0;
      byte[] buf=new byte[BUFFER];
      while((num=in.read(buf))!=-1){
       // System.out.println("SI:" + num);
        if(num<BUFFER){
          byte[] wbuf = new byte[num];
          for (int i = 0; i < num; i++) {
            wbuf[i] = buf[i];
          }
        }
        fos.write(buf);
      }
      fos.flush();
      fos.close();
      in.close();
      System.out.println("send:Success");
      sock.close();
      Date end = new Date();
      long tmp=(end.getTime()-start.getTime());
      long second=tmp / 1000;
      calcHM(second,tmp%1000);
      ////System.out.println("millisencond "+ tmp + " and second " + second);
    }catch(Exception e){
      e.printStackTrace();
    }
  }
 //显示时间的函数
  public void calcHM(long timeInSeconds,long mili) {
  long hours, minutes, seconds;
  hours = timeInSeconds / 3600;
  timeInSeconds = timeInSeconds - (hours * 3600);
  minutes = timeInSeconds / 60;
  System.out.println(hours + " hour(s) " + minutes + " minute(s) " +timeInSeconds +" second(s) " + mili +" millisecond(s)" );
  }
 //  public static void main(String[] arg){
    Client s=new Client();
  }
}