OutputStream.write() con Archivos grandes
Publicado por Luis (4 intervenciones) el 17/08/2019 08:32:59
Hola Estoy creando un servidor web con la clase HTTPServer, la idea es crear un servidor web con el cual puedas descargar archivos.
Hasta el momento el código funciona correctamente a excepción de que los archivos grandes como por ejemplo de 4gb no me los descarga.
Se que estos archivos superan el máximo de Integer.MAX_VALUE pero no se como adaptar este código para poder descargar estos archivos.
Esta es la parte del código que se encarga de hacer la descarga.
Al igual les dejo el repositorio completo en GitHub por si gustan verlo.
Entorno de desarrollo: Netbeans 8.2
https://github.com/LuisAcxis/ServidorWeb.git
Gracias por la ayuda
Hasta el momento el código funciona correctamente a excepción de que los archivos grandes como por ejemplo de 4gb no me los descarga.
Se que estos archivos superan el máximo de Integer.MAX_VALUE pero no se como adaptar este código para poder descargar estos archivos.
Esta es la parte del código que se encarga de hacer la descarga.
Al igual les dejo el repositorio completo en GitHub por si gustan verlo.
Entorno de desarrollo: Netbeans 8.2
https://github.com/LuisAcxis/ServidorWeb.git
Gracias por la ayuda
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
File file = new File (Nombre);
byte[] bytes = new byte [(int)file.length()];
Headers headers = he.getResponseHeaders();
headers.add("Server", "Luis Acxis 1.0");
headers.add("Date", String.valueOf(new Date()));
headers.add("Type", Tipo);
headers.add("Content-Length", String.valueOf(file.length()));
headers.add("Content-Type", "application/octet-stream "+Tipo);
FileInputStream fileInputStream = new FileInputStream(file);
BufferedInputStream bufferedInputStream = new BufferedInputStream(fileInputStream);
he.sendResponseHeaders(responseCode_OK, file.length());
OutputStream outputStream = he.getResponseBody();
int count;
while ((count = bufferedInputStream.read(bytes)) > 0)
{
outputStream.write(bytes, 0, count);
}
outputStream.close();
Valora esta pregunta
0