guys! I have a problem! I'm trying to download a .zip (size is 150 mb) file from Internet using this code:
public void downloadBuild(String srcURL, String destPath, int bufferSize, JTextArea debugConsole) throws FileNotFoundException, IOException { debugConsole.append(String.format("**********Start process downloading file. URL: %s**********\n", srcURL)); try { URL url = new URL(srcURL); HttpURLConnection httpConn = (HttpURLConnection) url.openConnection(); httpConn.setRequestMethod("POST"); httpConn.connect(); in = httpConn.getInputStream(); out = new FileOutputStream(destPath); byte buffer[] = new byte[bufferSize]; int c = 0; while ((c = in.read(buffer)) > 0) { out.write(buffer, 0, c); } out.flush(); debugConsole.append(String.format("**********File. has been dowloaded: Save path is: %s********** \n", destPath)); } catch (IOException e) { debugConsole.append(String.format("**********Error! File was not downloaded. Detail: %s********** \n", e.toString())); } finally { try { if (out != null) { out.close(); } if (in != null) { in.close(); } } catch (IOException ex) { } } } but the file is not completely downloaded. (only 4000 bytes). What am I doing wrong?
32 Answers
FileOutputStream("example.zip").getChannel().transferFrom(Channels.newChannel(new URL("").openStream()), 0, Long.MAX_VALUE); Simple one-liner. For more info, read here
3you can use the following code to download and extract zip file from given uri path.
URL url = new URL(uriPath); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("GET"); InputStream in = connection.getInputStream(); ZipInputStream zipIn = new ZipInputStream(in); ZipEntry entry = zipIn.getNextEntry(); while(entry != null) { System.out.println(entry.getName()); if (!entry.isDirectory()) { // if the entry is a file, extracts it System.out.println("===File==="); } else { System.out.println("===Directory==="); } zipIn.closeEntry(); entry = zipIn.getNextEntry(); }