Get Even More Visitors To Your Blog, Upgrade To A Business Listing >>

How to download a binary file in Java?

Approach 1: Using InputStream, we can read the data from the given url and OutputStream can be used to write the binary data to disk.

 


 

Find the below working application.

 

BinaryDownloaderDemo.java

package com.sample.app;

import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URL;
import java.net.URLConnection;

public class BinaryDownloaderDemo {

private static void downloadFile(final String urlToDownload, final String filePath) {

// Create parent folders if not exists
final File file = new File(filePath);
file.getParentFile().mkdirs();

try {
final URL url = new URL(urlToDownload);
final URLConnection urlConnection = url.openConnection();

try (final InputStream inputStream = urlConnection.getInputStream();
final OutputStream outputStream = new FileOutputStream(filePath);) {
byte[] buffer = new byte[65535];
int bytesRead;
while ((bytesRead = inputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, bytesRead);
}

}
} catch (Exception e) {
e.printStackTrace();
}

}

public static void main(String[] args) {
final String urlToDownlaod = "https://dlcdn.apache.org/maven/maven-3/3.8.6/binaries/apache-maven-3.8.6-bin.zip";

downloadFile(urlToDownlaod, "/Users/Shared/softwares/maven/apache-maven-3.8.6-bin.zip");

}

}

 

Approach 2: Using nio FileChannel#transferFrom method.

 

BinaryDownloaderDemo2.java

package com.sample.app;

import java.io.File;
import java.io.FileOutputStream;
import java.net.URL;
import java.nio.channels.Channels;
import java.nio.channels.ReadableByteChannel;

public class BinaryDownloaderDemo2 {

private static void downloadFile(final String urlToDownload, final String filePath) {

// Create parent folders if not exists
final File file = new File(filePath);
file.getParentFile().mkdirs();

try {
URL website = new URL(urlToDownload);

try (ReadableByteChannel rbc = Channels.newChannel(website.openStream());
FileOutputStream fos = new FileOutputStream(filePath);) {
fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
}

} catch (Exception e) {
e.printStackTrace();
}

}

public static void main(String[] args) {
final String urlToDownlaod = "https://dlcdn.apache.org/maven/maven-3/3.8.6/binaries/apache-maven-3.8.6-bin.zip";

downloadFile(urlToDownlaod, "/Users/Shared/softwares/maven/apache-maven-3.8.6-bin.zip");

}

}

 

You may like

File programs in Java

Count number of lines in a file

Download file from Internet using Java

Get the content of resource file as string

Copy the content of file to other location

Write byte array to a file



This post first appeared on Java Tutorial : Blog To Learn Java Programming, please read the originial post: here

Share the post

How to download a binary file in Java?

×

Subscribe to Java Tutorial : Blog To Learn Java Programming

Get updates delivered right to your inbox!

Thank you for your subscription

×