Last updated on 2012-12-09
There are programming tasks that I don’t do a lot, and they are forgotten in the depths of my brain, never to be seen again. That is why I try to store all of the code I have written so that I can fetch examples when needed (and now that github exists, why not share it with the world?).
So my first example in the new public repository is this: how to copy a file (maybe binary) from a URL to a local path. The code is pretty simple:
/******************************************************************************* * Copyright (c) 2012 Arieh 'Vainolo' Bibliowicz * You can use this code for educational purposes. For any other uses * please contact me: vainolo@gmail.com *******************************************************************************/ package com.vainolo.examples.net; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileOutputStream; import java.net.URL; import java.net.URLConnection; public class NetworkFileCopier { public static File copyFileFromWeb(String address, String filePath) throws Exception { byte[] buffer = new byte[1024]; int bytesRead; URL url = new URL(address); BufferedInputStream inputStream = null; BufferedOutputStream outputStream = null; URLConnection connection = url.openConnection(); // If you need to use a proxy for your connection, the URL class has another openConnection method. // For example, to connect to my local SOCKS proxy I can use: // url.openConnection(new Proxy(Proxy.Type.SOCKS, newInetSocketAddress("localhost", 5555))); inputStream = new BufferedInputStream(connection.getInputStream()); File f = new File(filePath); outputStream = new BufferedOutputStream(new FileOutputStream(f)); while ((bytesRead = inputStream.read(buffer)) != -1) { outputStream.write(buffer, 0, bytesRead); } inputStream.close(); outputStream.close(); return f; } }
The code is available on the Vainosamples repository. Oh, and if you have a better implementation, please do tell me!
Be First to Comment