2013-01-25 190 views
0

这是我的客户端代码将文件上载到服务器将文件发送到服务器 - 不保存在服务器

try { 
    OutputStream output = socket.getOutputStream();  

     FileInputStream fileInputStream = new FileInputStream(file); 
     byte[] buffer = new byte[1024*1024]; 
     int bytesRead = 0; 

     while((bytesRead = fileInputStream.read(buffer))>0) 
     { 
      output.write(buffer,0,bytesRead); 
     } 
catch (Exception e) { 

      } finally { 

       //fileInputStream.close(); 
      } 

Server代码

File file=null; 

    InputStream input = sk.getInputStream(); 

    file = new File("C://some/somefile.txt"); 
    FileOutputStream out = new FileOutputStream(file); 

    byte[] buffer = new byte[1024*1024]; 

    int bytesReceived = 0; 

    while((bytesReceived = input.read(buffer))>0) { 
     out.write(buffer,0,bytesReceived); 
     System.out.println(bytesReceived); 
     break; 
    } 

我是文件上载没有保存在服务器上。我如何纠正我的代码?请帮忙?

+0

后您正确关闭文件? –

+0

当我关闭时出现错误,所以我将其打开 – Illep

+0

删除服务器代码中的中断状态。还关闭流。 – SANN3

回答

0

为了正确保存文件,你需要把:

out.flush(); 
out.close(); 

你写完

+0

我做了,但没有变化,它没有上传 – Illep

+0

删除while循环中的“break”,用你的代码它只接收文件的第一部分,当关闭输出流时可能会出错,因为inputstream还没有完成接收 – BackSlash

+0

我做过了,但还没有上传。我也没有得到任何错误 – Illep