java.net.URISyntaxException java.net.URISyntaxException xml xml

java.net.URISyntaxException


A valid URI does not contain backslashes, and if it contains a : then the characters before the first : must be a "protocol".

Basically "C:\Documents and Settings\All Users\.SF\config\sd.xml" is a pathname, and not a valid URI.

If you want to turn a pathname into a "file:" URI, then do the following:

File f = new File("C:\Documents and Settings\All Users\.SF\config\sd.xml");URI u = f.toURI();

This is the simplest, and most reliable and portable way to turn a pathname into a valid URI in Java. It should work on Windows, Mac, Linux and any other platform that supports Java. (Other solutions that involve using string bashing on a pathname are not portable.)

But you need to realize that "file:" URIs have a number of caveats, as described in the javadocs for the File.toURI() method. For example, a "file:" URI created on one machine usually denotes a different resource (or no resource at all) on another machine.


The root cause for this is file path contains the forward slashes instead of backward slashes in windows.

Try like this to resolve the problem:

"file:" + string.replace("\\", "/");  


You must have the string like so:

String windowsPath = file:/C:/Users/sizu/myFile.txt;URI uri = new URI(windowsPath);File file = new File(uri);

Usually, people do something like this:

String windowsPath = file:C:/Users/sizu/myFile.txt;URI uri = new URI(windowsPath);File file = new File(uri);

or something like this:

String windowsPath = file:C:\Users\sizu\myFile.txt;URI uri = new URI(windowsPath);File file = new File(uri);