2013-01-25 70 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