import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
+import java.net.URLConnection;
import java.nio.channels.Channels;
import java.nio.channels.ReadableByteChannel;
import java.util.zip.GZIPInputStream;
public class FileDownloader
{
private static final Logger LOGGER = LoggerFactory.getLogger(FileDownloader.class);
+ private static final int CONNECT_TIMEOUT = 1000;
+ private static final int READ_TIMEOUT = 1000;
public enum CompressionMethod
{
private static void noneDownload(URL url, File destination) throws IOException
{
- try (InputStream stream = url.openStream();
+ URLConnection conn = url.openConnection();
+ conn.setConnectTimeout(CONNECT_TIMEOUT);
+ conn.setReadTimeout(READ_TIMEOUT);
+
+ try (InputStream stream = conn.getInputStream();
FileOutputStream fos = new FileOutputStream(destination);
ReadableByteChannel channel = Channels.newChannel(stream))
{
private static void gzipDownload(URL url, File destination) throws IOException
{
- try (InputStream stream = url.openStream();
+ URLConnection conn = url.openConnection();
+ conn.setConnectTimeout(CONNECT_TIMEOUT);
+ conn.setReadTimeout(READ_TIMEOUT);
+
+ try (InputStream stream = conn.getInputStream();
GZIPInputStream gis = new GZIPInputStream(stream);
FileOutputStream fos = new FileOutputStream(destination);
ReadableByteChannel channel = Channels.newChannel(gis))