snippetjavaCritical
How can I download and save a file from the Internet using Java?
Viewed 0 times
internetdownloadsavehowfromjavaandtheusingfile
Problem
There is an online file (such as
http://www.example.com/information.asp) I need to grab and save to a directory. I know there are several methods for grabbing and reading online files (URLs) line-by-line, but is there a way to just download and save the file using Java?Solution
Give Java NIO a try:
Using
Check more about it here.
Note: The third parameter in transferFrom is the maximum number of bytes to transfer.
URL website = new URL("http://www.website.com/information.asp");
ReadableByteChannel rbc = Channels.newChannel(website.openStream());
FileOutputStream fos = new FileOutputStream("information.html");
fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);Using
transferFrom() is potentially much more efficient than a simple loop that reads from the source channel and writes to this channel. Many operating systems can transfer bytes directly from the source channel into the filesystem cache without actually copying them.Check more about it here.
Note: The third parameter in transferFrom is the maximum number of bytes to transfer.
Integer.MAX_VALUE will transfer at most 2^31 bytes, Long.MAX_VALUE will allow at most 2^63 bytes (larger than any file in existence).Code Snippets
URL website = new URL("http://www.website.com/information.asp");
ReadableByteChannel rbc = Channels.newChannel(website.openStream());
FileOutputStream fos = new FileOutputStream("information.html");
fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);Context
Stack Overflow Q#921262, score: 589
Revisions (0)
No revisions yet.