Простой способ записать содержимое Java InputStream в OutputStream - PullRequest
404 голосов
/ 04 сентября 2008

Сегодня я с удивлением обнаружил, что не могу отыскать простой способ записать содержимое InputStream в OutputStream в Java. Очевидно, что код байтового буфера не сложно написать, но я подозреваю, что мне просто не хватает чего-то, что сделало бы мою жизнь проще (и код понятнее).

Итак, при InputStream in и OutputStream out существует ли более простой способ написать следующее?

byte[] buffer = new byte[1024];
int len = in.read(buffer);
while (len != -1) {
    out.write(buffer, 0, len);
    len = in.read(buffer);
}

Ответы [ 21 ]

0 голосов
/ 06 марта 2014

вы можете использовать этот метод

public static void copyStream(InputStream is, OutputStream os)
 {
     final int buffer_size=1024;
     try
     {
         byte[] bytes=new byte[buffer_size];
         for(;;)
         {
           int count=is.read(bytes, 0, buffer_size);
           if(count==-1)
               break;
           os.write(bytes, 0, count);
         }
     }
     catch(Exception ex){}
 }
...