2014-10-19 1 views
-1

Я использую базовый модуль сервера Java Java для отправки изображения.Получение файла образа в java

Я использую это link для руководства

Ниже мой исходный код для client.I имеют проблемы при получении файла.

package sclient; 

import java.io.BufferedOutputStream; 
import java.io.File; 
import java.io.FileOutputStream; 
import java.io.InputStream; 
import java.net.Socket; 

public class Sclient { 
    public static void main(String[] argv) throws Exception { 
    Socket sock = new Socket("192.168.0.10", 123); 
    byte[] mybytearray = new byte[1024*1024]; 
    InputStream is = sock.getInputStream(); 
    FileOutputStream fos = new FileOutputStream(System.getProperty("user.dir")+"/imageTest.jpg"); 
    BufferedOutputStream bos = new BufferedOutputStream(fos); 
    int bytesRead = is.read(mybytearray, 0, mybytearray.length); 
    bos.write(mybytearray, 0, bytesRead); 
    bos.close(); 
    sock.close(); 
    } 
} 
+0

Вы делаете только одно чтение байтов, вам нужно взаимодействовать с методом чтения до тех пор, пока он не вернет -1 в результате. Также закрывайте и очищайте свои потоки в блоке finally! – Kitesurfer

+0

Насколько велик ваш файл? – Fildor

+0

попробует это, спасибо ... но у них голосующий мой вопрос? ты знаешь? –

ответ

0

Thats one util method of android project, но его делает то же самое. Чтение и запись где-то

/** 
* @param inputStream 
* @param inClose 
* @return 
* @throws IOException 
*/ 
public static byte[] readContent(@NonNull final InputStream inputStream, final boolean inClose) 
     throws IOException { 
    Preconditions.checkNotNull(inClose, "InputStream"); 
    // 
    final ByteArrayOutputStream theStream = new ByteArrayOutputStream(BUFFER_2K); 
    final byte[] theBuffer = new byte[BUFFER_2K]; 

    try { 
     int theLength = inputStream.read(theBuffer); 

     while (theLength >= 0) { 
      theStream.write(theBuffer, 0, theLength); 
      theLength = inputStream.read(theBuffer); 
     } 
     return theStream.toByteArray(); 
    } finally { 
     if (inClose) { 
      close(theStream); 
     } 
    } 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^