descarga de archivos en servicios web tranquilos

Mi requisito es que envíe un archivo zip de 10 MB al cliente con un servicio de descanso. Encontré el código en los foros que el envío de un objeto StreamingOutput es la mejor manera, pero ¿cómo puedo crear un objeto StreamingOutput en el siguiente código?

 @Path("PDF-file.pdf/") @GET @Produces({"application/pdf"}) public StreamingOutput getPDF() throws Exception { return new StreamingOutput() { public void write(OutputStream output) throws IOException, WebApplicationException { try { //------ } catch (Exception e) { throw new WebApplicationException(e); } } }; } 

Es la mejor manera y la manera más fácil de descargar archivos.

 private static final String FILE_PATH = "d:\\Test2.zip"; @GET @Path("/get") @Produces(MediaType.APPLICATION_OCTET_STREAM) public Response getFile() { File file = new File(FILE_PATH); ResponseBuilder response = Response.ok((Object) file); response.header("Content-Disposition", "attachment; filename=newfile.zip"); return response.build(); } 

Para su código como usted pidió:

 @GET @Path("/helloWorldZip") @Produces(MediaType.APPLICATION_OCTET_STREAM) public StreamingOutput helloWorldZip() throws Exception { return new StreamingOutput(){ @Override public void write(OutputStream arg0) throws IOException, WebApplicationException { // TODO Auto-generated method stub BufferedOutputStream bus = new BufferedOutputStream(arg0); try { //ByteArrayInputStream reader = (ByteArrayInputStream) Thread.currentThread().getContextClassLoader().getResourceAsStream(); //byte[] input = new byte[2048]; java.net.URL uri = Thread.currentThread().getContextClassLoader().getResource(""); File file = new File("D:\\Test1.zip"); FileInputStream fizip = new FileInputStream(file); byte[] buffer2 = IOUtils.toByteArray(fizip); bus.write(buffer2); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } }; }