By Alvin Alexander. Last updated: October 18, 2016
Question: Using Java, how can I open a URL from my program, and then read the content of that URL?
Answer: One way to open a URL in Java is to use the URL and URLConnection classes. You can then read the data/content from the URL using a combination of an InputStreamReader and BufferedReader Here's a sample Java class that demonstrates the basic techniques:
import java.net.*;
import java.io.*;
/**
* A complete Java class that demonstrates how to read content (text) from a URL
* using the Java URL and URLConnection classes.
* @author alvin alexander, alvinalexander.com
*/
public class JavaUrlConnectionReader
{
public static void main(String[] args)
{
String output = getUrlContents("http://localhost:8080/");
System.out.println(output);
}
private static String getUrlContents(String theUrl)
{
StringBuilder content = new StringBuilder();
// many of these calls can throw exceptions, so i've just
// wrapped them all in one try/catch statement.
try
{
// create a url object
URL url = new URL(theUrl);
// create a urlconnection object
URLConnection urlConnection = url.openConnection();
// wrap the urlconnection in a bufferedreader
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(urlConnection.getInputStream()));
String line;
// read from the urlconnection via the bufferedreader
while ((line = bufferedReader.readLine()) != null)
{
content.append(line + "\n");
}
bufferedReader.close();
}
catch(Exception e)
{
e.printStackTrace();
}
return content.toString();
}
}
As you can see from that code the process of reading data from a URL with Java is pretty simple:
- Create a new Java URL object, passing in the desired URL you want to access.
- Use the
URLobject to create a Java URLConnection object. - Read from the
URLConnectionusing theInputStreamReaderandBufferedReader. - The BufferedReader
readLinemethod returns a String that you can acccess. If thisStringisnull, you've reached the end of the document. - Append the series of strings that you receive as output from the URL to your StringBuilder object.
As you can also see, this getUrlContents method can easily be moved into a web utilities class, where you can re-use it as desired.

