il blocco try/catch interno non mi convince moltissimo

Userei dei BufferedInputStream/OutputStream... qualcosa del tipo

codice:
try {
      bis = new BufferedInputStream(new FileInputStream("e:\\image.jpg"), 4096);
      bos = new BufferedOutputStream(out);
      byte[] buf=new byte[4096];
      int byteRead;
      while ((byteRead=bis.read(buf,0,4096))>=0) {
        bos.write(buf,0,byteRead);
      }
      bis.close();
      bos.flush();
      bos.close();
 }
la dimensione del buffer è arbitraria.